第二题一个大概是O(nlogn) 的方法,首先,观察到,每次其实就是把字符串的一部分取出来,然后继续处理下一部分。 比如,paectc, 第一步,acc + pet,这个意思是,直接做3步,把pet 放到后面,然后继续处理pet。 但是,处理pet 是变成 e + pt(继续处理),还是pt + e(继续处理) 呢? 这个要看两个,一个是已经弄到前面的字符串总长,在这里是acc = 3,一个是目前的步数,这里是3。 所以,理论上 pet 中下一个要处理的位置,= (目前步数+1 - 前面总长) % 2;如果这个值是1,意味着处理p 和t,那么就是e + pt,弄一个while 循环记录总步数就搞定了。所以大概是 paectc 步数=0 总长=0 accpet 步数=0+len(pet) = 3 总长=len(acc) = 3 accept 步数=3+len(pt) = 5 总长=3 + len(e) = 4 accept 步数=5+len(t) = 6 总长= 4 + len(p) = 5 然后最后再把t 加上
点赞 3

相关推荐

工科女的日常:真诚建议:别再用这种花哨的模板,可以看看我发的那个零经验找实习发帖子
点赞 评论 收藏
分享
喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
牛客网
牛客企业服务