我在letterlist
的字母上切换cutters
。
cutspots
中的数字表示相同cutters
的{{1}}中的字母会切到该字母右侧,即0会向左侧切割。
按照这些规则,我会得到与position
中的字词相关的结果,说这会生成1 wordlist
和0 'WORD'
s。虽然两者都在那里,但它们并不是由切割产生的。
这原本速度相当快,但我发现自己,而不只是在'ANOTHERK'
自己搜索单词,需要确认我正在删除列表的一封信实际上是在我的单词之前和之后wordlist
。
由于需要迭代letterlist
以生成cutters
,这会慢下来,是否有更聪明的方法来判断cutters[position]
中的单词是否两侧都有字母在wordlist
的适当位置?
cutterlist
答案 0 :(得分:0)
我愿意打赌,你的程序不适用于大字符串的原因是因为它的复杂度大于Θ(n)。此函数将剪切字符串,以便在此时间内切割它:
Cluster cluster = CouchbaseCluster.create(couchbaseEnvironment,"http://testcouch.employee.com");
couchBaseCluster.authenticate("helloUser", "helloUser++");
Bucket bucket = cluster.openBucket("SAMPLE","");
然后,我们可以简单地检查def cut_string(string, cutters, cutspots):
split_list = ['']
cut_next = False
for char in string:
if cut_next:
split_list.append(char)
cut_next = (char in cutters) and (cutspots[cutters.index(char)])
else:
if char in cutters:
if cutspots[cutters.index(char)]:
cut_next = True
split_list[-1] += char
else:
split_list.append(char)
else:
split_list[-1] += char
return [string for string in split_list if string]
中的任何单词是否是字符串的分割部分(我假设您的意思是wordlist
为wordlist
:
[['WORD', 'ANOTHERK']]