使用 python3 检查字符串是否为有效回文

Checking a string if it is a valid palindrome or not using python3

class Solution:
    def isPalindrome(self, s: str) -> bool:
        string=''
        ss=s.lower()
        
        for x in ss:
            if x.isalnum():
                string.join(x)
        bol= string == string[::-1]
                
        return bol
str_1="A man, a plan, a canal: Panama"  
str_2="race a car"  

对于 str_1 代码工作正常(输出为 TRUE)但是对于 str_2 也输出为 TRUE 但它不是回文。 我不明白我的代码中有什么错误。

试试这个:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        string=""
        ss=s.lower()
        
        string = ''.join(x for x in ss if x.isalnum())    
        
        bol= string == string[::-1]
                
        return bol

输出:

#for str_1
True
# for str_2
False

因为您不会在每次加入字符串时都进行保存。

class Solution:
    def isPalindrome(self, s: str) -> bool:
        string=''
        ss=s.lower()
        
        for x in ss:
            if x.isalnum():
                string += ''.join(x) # Remember to save the new added character
        bol= string == string[::-1]
                
        return bol

给定一个字符串,编写一个python函数来检查它是否是回文。如果字符串的反转与字符串相同,则称该字符串是回文。比如“radar”是回文,“radix”不是回文。

def isPalindrome(s):
    return s == s[::-1]    
 
# Driver code
s = "hello"
ans = isPalindrome(s)
 
if ans:
    print("Yes")
else:
    print("No")