Я работаю над решением для поиска действительного палиндрома, где пустая строка будет считаться допустимым палиндромом. Этот вопрос игнорирует любые случаи, которые не являются буквенно-цифровыми. Ниже приведены некоторые примеры:
Input: "A man, a plan, a canal: Panama"
Output: true
Input: "race a car"
Output: false
Я написал решение, в котором, если я столкнусь с не алфавитно-цифровым символом, этот символ будет пропущен:
def isPalindrome(self, s):
1 """
2 :type s: str
3 :rtype: bool
4 """
5 """
6 for i in s:
7 if (i.isupper())==True:
8 i.lower()
9 """
10 if len(s)==0:
11 return True
12 print(s)
13 i = 0
14 j = len(s) - 1
15 while(i<=j):
16 if s[i].isalnum()==False:
17 i+=1
18 elif s[j].isalnum() == False:
19 j-=1
20 elif s[i].islower() != s[j].islower():
21 return False
22 i+=1
23 j-=1
24
25 return True
Однако я продолжаю получать следующеерезультат:
Your input
"A man, a plan, a canal: Panama"
stdout
A man, a plan, a canal: Panama
Output
false
Expected
true
Что я делаю не так?