题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

s = input()
a = []
for i in range(len(s)):
    for j in range(i+1, len(s)+1):
        if s[i] == s[j-1] and s[i:j] == s[i:j][::-1]:
            a.append(len(s[i:j]))

print(max(a))
"""
# 开始:
(1)找到解决问题的高效思路
找出某一区间,字符串反转等于本身的内容,找到所有的,并将他们的长度放到列表中,求解最大值,即有效密码串的最大长度
(2)找到解决思路的代码实现方式
我的实现方式是双从重for循环,复杂度过大,不行 》 看答案


# 总结:
(1)我为什么没想到这种思路
思路ok,双重for循环,使用字符串反转规则判断
(2)我为什么没想到这种代码实现方式
错误:字符串截取用的区间取值、遍历用的区间取值,我把两个搞成一样的了。字符串截取、索引这两个如果混在一定要仔细。
当复杂度高的时候,我没思路了,这个时候如何降低复杂度?
复杂度高的原因是双重for循环吗?不只是这个,还有if的条件判断,因为要截取大量的字符串,所以我们思路是给前面增加 and 条件判断。
规则是:符合要求的字符串,第一个字符跟最后一个字符必然相等。不相等的就不用截取字符串判断了,节省了大量的时间。

"""


#数据仓库与数据分析实习#
OD专栏练习梳理 文章被收录于专栏

OD专栏练习梳理

全部评论

相关推荐

02-05 08:49
已编辑
武汉大学 Java
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
02-22 20:28
重庆大学 Java
程序员牛肉:首先不要焦虑,你肯定是有希望的。 首先我觉得你得好好想一想自己想要什么。找不到开发岗就一定是失败的吗?那开发岗的35岁危机怎么说?因此无论是找工作还是考公我觉得你都需要慎重的想一想。但你一定要避开这样一个误区:“我是因为找不到工作所以不得不选择考公”。 千万不要这么想。你这个学历挺好的了,因此你投后端岗肯定是有面试机会的。有多少人简历写的再牛逼,直接连机筛简历都过不去有啥用?因此你先保持自信一点。 以你现在的水平的话,其实如果想要找到暑期实习就两个月:一个月做项目+深挖,并且不断的背八股。只要自己辛苦一点,五月份之前肯定是可以找到暑期实习的,你有点太过于高看大家之间的技术差距了。不要焦虑不要焦虑。 除此之外说回你这个简历内容的话,基本可以全丢了。如果想做后端,先踏踏实实做两个项目再说+背八股再说。如果想考公,那就直接备战考公。 但是但是就像我前面说的:你考公的理由可以是因为想追求稳定,想追求轻松。但唯独不能是因为觉得自己找不到工作。不能这么小瞧自己和自己的学历。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务