Постановка задачи:

Джарвис не умеет вычислять палиндромы для буквенно-цифровых символов.
Пока Железный человек сражается с Таносом, ему нужно активировать звуковой удар, но Джарвис застрял в вычислении палиндромов.
Вам дается строка S , содержащий буквенно-цифровые символы. Узнайте, является ли строка палиндромом или нет.
Если вы не сможете разгадать ее, это может привести к смерти Железного человека.

Пример 1:

Input : S = "I am :IronnorI Ma, i"
Output : YES
Explanation:
Ignore all the symbol and whitespaces S = "IamIronnorIMai".
Now, Check for pallandrome ignoring uppercase and lowercase
english letter.

Пример 2:

Input : S = Ab?/Ba 
Output :  YES

Ожидаемая временная сложность: O (N). где N - длина строки
Ожидаемое вспомогательное пространство: O (1).

Ограничения:
1 ≤ | S | ≤ 100000
Примечание. Для проверки палиндрома учитывайте только алфавиты и числа. Игнорируйте символы и пробелы.

Код и алгоритм:

def saveIronman (s) : 
    #Complete the function
    #s = input("Enter a string: ")
    only_alpha= ""
    for char in s:
     if char.isalpha() or char.isdigit():
          only_alpha += char
    S=only_alpha.lower()
    if(S==S[::-1]):
      # print("YES")
      return True
    else:
      #  print("NO")
      return False
#{ 
#  Driver Code Starts
#Initial Template for Python 3
for _ in range(0,int(input())):
    s = input()
    ans = saveIronman(s)
    if(ans == True):
        print("YES")
    else:
        print("NO")
# } Driver Code Ends

Спасибо.

Акаш Кумар

Инженер-программист