|
发表于 2019-12-20 21:21:01
|
显示全部楼层
本帖最后由 阴阳神万物主 于 2019-12-20 23:05 编辑
改了一改,康康这回如何。
- def solve(s:str)->str:
- '''
- 用最短方式在前方添加字符使其成为回文
- '''
- le = len(s)
- rs = ''.join(reversed(s))
- for d in range(le):
- #print('调试',s[:le-d],rs[d:])
- if s[:le-d] == rs[d:]:
- break
- return rs[:d] + s
- if __name__ == '__main__':
- '''
- print('示例1 输出:',solve("aacecaaa"))
- print('示例2 输出:',solve('abcd'))
- print('自测 输出:',solve('aca'))
- '''
- import random
- def get(n:int):
- alpha = 'abcdefghijklmnopqrstuvwxyz'
- for i in range(n):
- yield random.choice(alpha)
- a = solve(''.join(get(40000)))
复制代码
这回感觉可以
- >>> c = ''.join(get(40000))
- >>> if True:
- a = time.perf_counter()
- solve(c)
- b = time.perf_counter()
- 1001行的内容被折叠
- >>> b-a
- 0.6628862999999967
- >>>
复制代码
|
评分
-
查看全部评分
|