程序在Python中单次旋转后查找最长回文子串的长度
假设我们有一个字符串s,它可以在任意点旋转一次。我们必须找到通过执行此操作可以获得的最长回文子串的长度。
因此,如果输入类似于s=“elklev”,则输出将为7,因为我们可以在“el”和“klev”之间旋转以获得“levelk”。所以这里最长的回文子串长度是5。
为了解决这个问题,我们将遵循以下步骤-
s2:=两次连接s
max_len:=0
对于0到s−1范围内的x,执行
temp:=s2[从索引x到x+y]
如果temp是回文,并且temp的大小>max_len,则
max_len:=临时大小
对于y在0到s大小的范围内,执行
返回max_len
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, s):
s2 = 2 * s
max_len = 0
for x in range(len(s)):
for y in range(len(s) + 1):
temp = s2[x : x + y]
if temp == temp[::−1] and len(temp) > max_len:
max_len = len(temp)
return max_len
ob = Solution()
s = "elklev"
print(ob.solve(s))输入值
"elklev"输出结果
5
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短