replace是从头开始查找的且会返回一个新的字符串,你这5000个迭代,如果源字符串很长的话,内存和时间确实都会爆炸
但你这时间复杂度已经摆在这里了,同时我也想不到现成可以使用的库,只能提供几个建议,可以先把拷贝给优化掉,然后替换字符串没冲突的话,考虑从头到 尾只遍历一次,类似于在线处理算法
极端一点你这可以用MapReduce处理,文本分成一小段一小段的,然后可以并行处理,最后再连起来就是你要的,如果有10台机器同时干的话能调高许多倍的效率,当然你可以是少一点的物理机再配合多进程
不过要是能忍的话忍忍也还行,毕竟算法不是那么好写