Check if a string reads the same forwards and backwards, ignoring case and skipping anything that isn't a letter or digit. No deletions allowed — this is the strict version.
while loops are what let punctuation and spaces get skipped without a separate cleanup pass.