柿子饼同学 发表于 2021-3-6 14:57:57

求字符串中最大的回文字符串

描述:输入一个字符串,需要找到其中最大的回文字符串(回文字符串就是正着反着一样的字符串)
我的思路:用2层for循环遍历其中所有的子字符串,再利用切片比对,找出所有回文字符串……
我的问题就是我现在有了所有的回文字符串,但是不知道哪个最大{:10_269:}
求大神指点(或者还能有更好的思路么)
我写的:
s = input('输入一个字符串:')
for i in range(len(s)):
   for j in range(i+1, len(s)+1):
          if s == s[::-1]:
               #下面就不知该怎么写了
最后,谢谢谢谢{:10_297:}

逃兵 发表于 2021-3-6 15:38:36

s = input('输入一个字符串:')
test = dict()
for i in range(len(s)):
   for j in range(i+1, len(s)+1):
          if s == s[::-1]:
                test] = len(s)
print(max(test))

柿子饼同学 发表于 2021-3-6 15:46:11

逃兵 发表于 2021-3-6 15:38


不是求最大长度,就是求最大长度的字符串

柿子饼同学 发表于 2021-3-6 15:47:04

柿子饼同学 发表于 2021-3-6 15:46
不是求最大长度,就是求最大长度的字符串

怪我没说清楚{:10_245:}

逃兵 发表于 2021-3-6 15:50:06

柿子饼同学 发表于 2021-3-6 15:46
不是求最大长度,就是求最大长度的字符串

跑一下试试

逃兵 发表于 2021-3-6 15:58:43

s = input('输入一个字符串:')
test = dict()
for i in range(len(s)):
   for j in range(i+1, len(s)+1):
          if s == s[::-1]:
                test] = len(s)
print(max(test,key=lambda x: test))

柿子饼同学 发表于 2021-3-6 16:00:39

哦是这样啊
可是现在又有一个问题=================== RESTART: C:\Users\86177\Desktop\临时小程序.py ===================
输入一个字符串:asdsa
sds
>>>
它不回asdsa怎么办

逃兵 发表于 2021-3-6 16:04:04

柿子饼同学 发表于 2021-3-6 16:00
哦是这样啊
可是现在又有一个问题
它不回asdsa怎么办

s = input('输入一个字符串:')
test = dict()
for i in range(len(s)):
   for j in range(i+1, len(s)+1):
          if s == s[::-1]:
                test] = len(s)
print(max(test,key=lambda x: test))


输入一个字符串:asdsa
asdsa
>>>

看新发的代码,直接max()确实有bug

柿子饼同学 发表于 2021-3-6 16:04:11

逃兵 发表于 2021-3-6 15:58


还有出问题了,这怎么办{:10_245:}
=================== RESTART: C:\Users\86177\Desktop\临时小程序.py ===================
输入一个字符串:babad
d
>>>

逃兵 发表于 2021-3-6 16:07:17

柿子饼同学 发表于 2021-3-6 16:04
还有出问题了,这怎么办

新发过去的代码跑的吗

柿子饼同学 发表于 2021-3-6 16:07:34

逃兵 发表于 2021-3-6 16:04
看新发的代码,直接max()确实有bug

这是为什么呢{:10_297:}

逃兵 发表于 2021-3-6 16:12:02

柿子饼同学 发表于 2021-3-6 16:07
这是为什么呢

或者改成

max(test,key = test.get)

逃兵 发表于 2021-3-6 16:13:18

s = input('输入一个字符串:')
test = dict()
for i in range(len(s)):
   for j in range(i+1, len(s)+1):
          if s == s[::-1]:
                test] = len(s)
print(max(test,key=test.get))

逃兵 发表于 2021-3-6 16:13:59

https://blog.csdn.net/weixin_44941795/article/details/104584493

柿子饼同学 发表于 2021-3-6 16:14:22

谢谢谢谢{:10_254:}

逃兵 发表于 2021-3-6 16:21:09

柿子饼同学 发表于 2021-3-6 16:14
谢谢谢谢

不用谢,我很欣赏你刨根问底的精神,提出的问题经常举一反三,很多问题对我来说也是拓展和提高

yuedong 发表于 2021-3-6 16:36:00

虽然已经解决,但是还是给出我的结果{:5_109:}

# 输入包含要比较字符串的列表
def max_len(str):
    length = len(str)
    sign = 0
    for each in range(1,length):
      if len(str) > len(str):
            sign = each

    return str
      
str1 = ['asdad','dadadf','sa','beautiful','size','file','strplite']
strmax = max_len(str1)
print(strmax)

柿子饼同学 发表于 2021-3-6 16:38:07

yuedong 发表于 2021-3-6 16:36
虽然已经解决,但是还是给出我的结果

{:10_254:}
页: [1]
查看完整版本: 求字符串中最大的回文字符串