酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

回文”是顺着读或倒着读含有相同顺序的字母的句子,一个典型的例子是“able was i, ere i saw elba”。写一个函数来检测一个字符串是不是回文。   提示:如果打算用递归方法,其基本思想是检查字符串的第一个和最后一个字母是否相同;如果相同,那么如果这两个字母之间的所有内容都是回文,它就是回文。   有两种特殊情况要检查。如果字符串的第一个或最后一个字符不是字母,你可以检查该字符串删除该字符,其余部分是不是回文。此外,在比较字母时,请确保不区分大小写。   在程序中使用你的函数,提示用户输入短语,然后指出它是不是回文。另一个经典的测试是“a man, a plan, a canal, panama!”

```python def is_palindrome(s): # 将字符串转换为小写,方便比较 s = s.lower() # 去除非字母字符 s = ''.join(e for e in s if e.isalpha()) # 如果字符串长度为 0 或 1,返回 True if len(s) <= 1: return True # 比较首尾字母是否相同 if s[0] == s[-1]: # 递归检查中间部分是否为回文 return is_palindrome(s[1:-1]) else: return False phrase = input("请输入短语: ") if is_palindrome(phrase): print("这是回文") else: print("这不是回文") ``` 额外需要注意的逻辑点: 1. 对于输入的字符串,要确保处理了可能包含的空格和标点符号。 2. 考虑输入为空字符串的情况,要明确返回结果。 3. 处理递归的边界情况,避免无限递归导致程序崩溃。 [2024-11-21 13:21:58 | AI写代码神器 | 244点数解答]

相关提问