我有用户输入字符串,直到它们完成为止,然后输入完成。然后,我检查每个字符串,看看它是否是回文。如果字符串是回文,那么我将它插入到列表中。我有我的回文检查代码为字符串工作,如“交换爪子”,但它不工作字符串,如“墨西哥猫”。我不能用库来帮助我,所以我不确定如何忽略空格和大小写。这与这里提出的其他问题不一样,因为那些讨论忽略空间和用例库的问题,而其他问题只讨论检查没有空格或任何特殊内容的基本字符串是否是回文。这是我的代码:
plist={}
val=1
print("Enter the strings: ")
inp = raw_input() # Get the input
if(inp==inp[::-1]):
plist[inp] = val
while inp != "Done": # Loop until Done is entered
if(inp==inp[::-1]): # inp==inp[::-1]
plist[inp] = val
inp = raw_input() # Get the input again
print("The palindromes are: ")
print(plist)发布于 2018-05-30 15:53:34
这似乎是过滤掉空白字符,回文的东西,你已经弄清楚了。
要筛选出空格字符,可以这样做:
>>> "".join([c for c in "taco cat" if c != " "])
'tacocat'对于其他空格字符,可以更改if筛选器:
... c not in [" ", "\t", "\n", ...]发布于 2018-05-30 15:52:55
在这里你得到了你可能正在寻找的答案:
(这个程序运行在Python3上-也许某些函数在Python2或更低版本中是不同的)
# Reverse of a string
def reverse(input_string: str):
return input_string[::-1]
# Main function
def is_palindrome(input_string: str):
# type: () -> bool
reverse_string = reverse(input_string)
return reverse_string == input_string
# Now your program
palindrome_words = []
is_program_finished = False
do:
input_text = input("Put your palindrome here or type \"Done\" for finish: ")
if input_text != "Done":
if is_palindrome(input_text):
palindrome_words.append(input_text)
else:
is_program_finished = True
while not is_program_finished
# I recommend you to use "pprint" for displaying list
from pprint import pprint
pprint(palindrome_words)
# Else:
print(palindrome_words)希望它对^^有帮助
https://stackoverflow.com/questions/50608710
复制相似问题