Your question is Palindrome Function and Memory. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
A diagnostic label generated during General Atomics MQ-9B SkyGuardian flight testing is considered symmetric if it reads the same forward and backward after removing non-alphanumeric characters and ignoring letter case. Implement a function that determines whether a label satisfies this rule.
Use a two-pointer approach that scans the string from both ends without creating a reversed or normalized copy. After implementing the function, be prepared to explain how the equivalent C++ solution would use const char* or indexed access to traverse a std::string, including how characters are stored in contiguous memory and how pointer movement remains within the string bounds.
Input is a string label, containing ASCII letters, digits, spaces, and punctuation. Return True if the normalized label is a palindrome, otherwise return False.
Normalization removes every character for which isalnum is false and compares letters without regard to case. An empty normalized label is considered a palindrome.
def is_diagnostic_palindrome(label):