HJ32 题解 | #密码截取#

密码截取

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

#Tips:
#据说切片的时间和切片的长度成正比
#所以遇到可能是切片导致的超时,就要想办法优化切片长度


#麻了,彻底麻了

#无脑贪心来一波


s=input()
ans=1
#倒序遍历长度
for i in range(len(s)):
    j=len(s)-i#长度,从最长开始
    #检查所有长度为j的子串
    for k in range(i+1):
        if s[k]==s[k+j-1]:#先满足首尾相同再切片,节约时间
            if s[k:k+j]==s[k:k+j][::-1]:#检查子串
                ans=j
                break
    else:#方便直接跳出两层循环
        continue
    break
print(ans)
#过啦~


#下面我很久之前的思路,可能参考了别人的代码
#感觉上这个应该比较费时间才对,但是实际提交的时候
#甚至比上面的贪心更快

#典型的最长回文子串的问题
'''
s=input()
max=0
for i in range(len(s)-1):
    for j in range(i+1,len(s)):
        if s[i]==s[j] and s[i:j+1]==s[i:j+1][::-1] and j-i+1>max:
            max=j-i+1
print(max)
'''




#华为##华为od##华为机试##华为od机试#
华为HJ103所有解法 文章被收录于专栏

这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~

全部评论

相关推荐

牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
LXXXXd:有点杂,想搞自动化的话没必要把法律的经历写上去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务