编写一个函数,该函数采用由字母组成的字符串 字符作为输入参数,如果字符串是a,则返回True 回文。回文是一个向后或相同的字符串 向前。注意,大写在这里并不重要,即较低 case字符可以被认为与大写字符相同。
这是我的代码:
def Palindrome_test_string (input_str):
output_str = ""
count = 0
for k in range (len(input_str) - 1, -1, -1):
output_str = output_str + input_str[k]
print ("The reverse of the string is:",output_str)
for i in range (0, len(input_str)):
if (output_str[i] == input_str[i]):
count += 1
else:
break
if (count == len(input_str)):
return (True)
else:
return (False)
#Main Program
test_str = "Radar"
result = Palindrome_test_string (test_str)
print (result)
它显示了大多数情况下的正确输出,但该程序存在一个问题。当我输入'雷达'时,它的反向应该是'radaR'并且根据问题,我必须在比较时将大写和小写字符视为相等。怎么做到这一点?任何帮助,将不胜感激。
答案 0 :(得分:3)
def Palindrome_test_string(input_str):
lower = input_str.lower() # Store this to avoid doing it twice
return lower == lower[::-1]
print(Palindrome_test_string('abccbA'))
这将显示:
True
注意:[::-1]
字符串切片具有反转字符串的效果。
答案 1 :(得分:1)
将输入数据转换为小写。
def Palindrome_test_string (input_str):
output_str = ""
count = 0
input_str = input_str.lower()
...
答案 2 :(得分:0)
def isPalindrome(s):
s = s.lower()
x = s[::-1]
if s == x:
return True
return False