题解 | #密码截取#执行速度超过90%,哈哈

密码截取

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

while True:
    try:
        str_input = input()
        # 中心为一个元素时
        single_center_list,double_center_list = [1]*len(str_input), [0]*len(str_input)
#         print(single_center_list)
        for i in range(1, len(str_input) - 1):
            j = 0
            while j < min(i, len(str_input) - i - 1):
                j += 1
                if str_input[i-j] == str_input[i+j]:
                    single_center_list[i] += 2
                else:
                    break
#         print(single_center_list)
        single_center_max = max(single_center_list)
        
        # 中心为2个元素时
        for i in range(1, len(str_input) - 1):
            j = 0
            first_flag = True
            while j < min(i, len(str_input) - i - 2):
                j += 1
                if str_input[i] == str_input[i+1]:
                    if first_flag:
                        double_center_list[i] = 2
                        first_flag = False
                    if str_input[i-j] == str_input[i+1+j]:
                        double_center_list[i] += 2
                    else:
                        break
                else:
                    break
        double_center_max = max(double_center_list)
        print(max(single_center_max, double_center_max))
    except:
        break
全部评论
[1]*len(str_input), [0]*len(str_input) 请问这一段是什么意思呀?
点赞 回复 分享
发布于 2022-05-23 19:27
求大神解答 j
点赞 回复 分享
发布于 2022-04-16 11:22
这道题与 HJ85 有点类似,但为什么 HJ85 的暴力解法为什么会 TLE 呢?这种解法的时间复杂度应该也是 O(n^2) 吧?是因为 Python3 字符串切片导致内存占用量巨大而超时的嘛?
点赞 回复 分享
发布于 2022-01-30 11:28

相关推荐

06-26 15:35
武汉大学 运营
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

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