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

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

时间:2024-10-10 11:21:25浏览次数:10  
标签: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

相关文章

  • 递归下降--自顶向下的解析方法
    递归下降(RecursiveDescentParsing)是一种自顶向下的解析方法,用于解析编程语言的语法或表达式。它通过使用一组递归的函数来处理文法规则(通常是上下文无关文法),从而将输入字符串解析为语法树或抽象语法树(AST)。递归下降解析器是手工编写的,因此可以根据具体需要灵活地控制解析行为......
  • 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的阶乘②顺序打印一个整数的每一位③斐波那契数列三.递归与迭代一.递归的概念①递归的思想所谓递归,就是把一个大型复杂问题不断转化成一个个规模较小的子问题从而求解,直到子问题不能被......
  • 递归深拷贝导致浏览器网络请求中看不到响应
    前言:在项目中发现一个奇怪的问题,一个请求在数据量少的时候非常快速,数据量多的时候非常慢,甚至导致浏览器崩溃,在浏览器的网络抓包中看到有返回状态时200,但是响应迟迟没有返回,并且可以看到等待服务器响应时间非常长。排查:一开始是定位在后端问题,因为查询类型为1的时候反应速度非常快......
  • 递归中Return实例分析
    函数递归局部函数变量的特性自成体系,作为调用函数自身递归函数不依靠任何外部资源,自成体系的迭代到基准值return:返回特定的退出状态码,在函数结束时#!/bin/bash#usingrecursion#计算阶乘,formula:x!=x*(x-1)!,使用递归函数得到(x-1)!functionfactorial{#递......
  • 【模板】回文自动机(PAM)(洛谷P5496)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();constexprllN=5e5+7;namespacePAM{intsize,tot,last;//last:最新插入的字母的编号......
  • 算法【从递归入手二维动态规划】
    尝试函数有1个可变参数可以完全决定返回值,进而可以改出1维动态规划表的实现。同理,尝试函数有2个可变参数可以完全决定返回值,那么就可以改出2维动态规划的实现。一维、二维、三维甚至多维动态规划问题,大体过程都是:1.写出尝试递归。2.记忆化搜索(从顶到底的动态规划)。3.严......
  • [CSP-S 2021] 回文
    算法暴力容易发现双指针可以找到每一个区间\([L,R]\),使得这个区间覆盖\(1\)~\(n\)的每一个数,也即区间外覆盖\(1\)~\(n\)的每一个数,这是\(O(n)\)的考虑判断对于两个数列\(A\),\(B\)显然,在\(A\)中先取出的要在\(B\)中最后取出,所以把\(A\)压入栈......
  • 嵌套类递归
    嵌套类递归都需要一个全局变量记录当前正在处理的位置基础计算器III含有嵌套的表达式求值,时间复杂度O(n)#include<iostream>#include<string>#include<vector>usingnamespacestd;classSolution{public:intwhere;intcalculate(string&s){......