给出最小长度N以及1和0的字符串S(例如“ 01000100”),我试图返回包含所有'0'的长度为n的子字符串的非重叠出现次数。例如,给定n = 2和字符串“ 01000100”,非重叠“ 00”的数目为2。
这是我所做的:
def myfunc(S,N): return S.count('0'*N)
我的问题:是否有较快的方法来执行很长的字符串?这来自在线编码实践网站,我的代码通过了除一个测试用例之外的所有测试用例,该测试用例由于无法在规定的时间内完成而失败。做一些研究,看来我只能发现count()是最快的方法。
给出最小长度N以及1和0的字符串S(例如“ 01000100”),我试图返回包含所有'0'的长度为n的子字符串的非重叠出现次数。例如,...
这可能会更快:
lenik发表了很好的回应,效果很好。我还发现了另一个比count()更快的方法,我也将在这里发布它。它使用正则表达式库中的findall()方法: