找到一个单词,并在一连串的字母中有效地确认一个单词的周围字母

时间:2017-11-26 01:14:03

标签: python regex

我在letterlist的字母上切换cutters

cutspots中的数字表示相同cutters的{​​{1}}中的字母会切到该字母右侧,即0会向左侧切割。

按照这些规则,我会得到与position中的字词相关的结果,说这会生成1 wordlist和0 'WORD' s。虽然两者都在那里,但它们并不是由切割产生的。

这原本速度相当快,但我发现自己,而不只是在'ANOTHERK'自己搜索单词,需要确认我正在删除列表的一封信实际上是在我的单词之前和之后wordlist

由于需要迭代letterlist以生成cutters,这会慢下来,是否有更聪明的方法来判断cutters[position]中的单词是否两侧都有字母在wordlist的适当位置?

cutterlist

1 个答案:

答案 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] 中的任何单词是否是字符串的分割部分(我假设您的意思是wordlistwordlist

[['WORD', 'ANOTHERK']]