首页 > 编程语言 >编写一个程序递归判断一个字符串是否为回文。回文是指从前往后读和从后往前读都一样的单词、短语、数字或其他字符序列。

编写一个程序递归判断一个字符串是否为回文。回文是指从前往后读和从后往前读都一样的单词、短语、数字或其他字符序列。

时间:2024-10-10 11:21:25浏览次数:18  
标签:palindrome return string 递归 短语 list1 user input 回文

def is_string_palindrome(string):

if len(string)<2:

#设置出口

return True

else:

#判断首末位是否相同

if string[0] == string[len(string)-1]:

#用列表来删除首末位相同字符

list1=list(string)

list1.pop(0)

list1.pop()

string=''.join(list1)

#设置过程

return is_string_palindrome(string)

else:

#设置出口

return False

# 获取用户输入

user_input = input()

 

# 调用函数

print(is_string_palindrome(user_input.lower()))

 

###分隔###

#不用递归,代码更加简洁效率更高

 

def is_string_palindrome(string):

#直接利用列表翻转判断是否回文

list1=list(string)

list2=list(string)

list2.reverse()

if list2==list1:

return True

else:

return False 

 

# 获取用户输入

user_input = input()

 

# 调用函数

print(is_string_palindrome(user_input.lower()))

标签:palindrome,return,string,递归,短语,list1,user,input,回文
From: https://blog.csdn.net/2301_80995229/article/details/142816916

相关文章

  • 5. 最长回文子串
    思路首先判断字符串是否是回文,是则直接返回,不是则遍历:从第一个字符开始遍历,判断对应字符串是否是回文且是不是最大长度时间复杂度:O(N^3)动态规划解法:状态初始化为Falsedp[i][j]回文:s[i]=s[j]且[i-1:j-1]也为回文classSolution(object):deflongestPalindrom......
  • es: match_phrase短语匹配
    一,问题的表现当我们在es的索引库中搜索朝阳新城时,搜索结果中有包含朝阳新城这四个字的结果,也有只包含朝阳或只包含新城的结果,这是analyzer在对关键词做了分词之后从索引库中返回,如果说:我只想要包含朝阳新城这四个字的结果,需要怎么做?二,解决:1,默认的match搜索会对搜索内容......
  • C语言—函数递归
    目录一.递归的概念①递归的思想②递归的限制条件二.递归的一些典型例子①求n的阶乘②顺序打印一个整数的每一位③斐波那契数列三.递归与迭代一.递归的概念①递归的思想所谓递归,就是把一个大型复杂问题不断转化成一个个规模较小的子问题从而求解,直到子问题不能被......
  • 算法【从递归入手二维动态规划】
    尝试函数有1个可变参数可以完全决定返回值,进而可以改出1维动态规划表的实现。同理,尝试函数有2个可变参数可以完全决定返回值,那么就可以改出2维动态规划的实现。一维、二维、三维甚至多维动态规划问题,大体过程都是:1.写出尝试递归。2.记忆化搜索(从顶到底的动态规划)。3.严......
  • 嵌套类递归
    嵌套类递归都需要一个全局变量记录当前正在处理的位置基础计算器III含有嵌套的表达式求值,时间复杂度O(n)#include<iostream>#include<string>#include<vector>usingnamespacestd;classSolution{public:intwhere;intcalculate(string&s){......