Python 在原始字符串中查找隐藏的子字符串?

Python 在原始字符串中查找隐藏的子字符串?,python,string,Python,String,Hi具有如下字符串: orig = "hbeojllok" 并想知道此字符串中是否有特定的隐藏子字符串。例如,我们可以在其中找到“hello”一词:hbeojllok。我们还可以找到“书”这个词:hbeojllok。唯一的限制是隐藏子字符串的字母在原始字符串中的顺序必须正确。我将如何在python中实现这一点?谢谢。循环搜索单词中的每个字母,从找到的最后一个字母开始,在原始字符串中查找该字母。当找不到字母或没有其他字母可查找时返回结果 def f(orig, word): idx =

Hi具有如下字符串:

orig = "hbeojllok"

并想知道此字符串中是否有特定的隐藏子字符串。例如,我们可以在其中找到“hello”一词:hbeojllok。我们还可以找到“书”这个词:hbeojllok。唯一的限制是隐藏子字符串的字母在原始字符串中的顺序必须正确。我将如何在python中实现这一点?谢谢。

循环搜索单词中的每个字母,从找到的最后一个字母开始,在原始字符串中查找该字母。当找不到字母或没有其他字母可查找时返回结果

def f(orig, word):
    idx = 0
    for letter in word:
        x = orig.find(letter, idx)
        if x != -1:
            idx = x
        else:
            return False
    return True

循环搜索单词中的每个字母,从找到的最后一个字母开始,在原始字符串中查找该字母。当找不到字母或没有其他字母可查找时返回结果

def f(orig, word):
    idx = 0
    for letter in word:
        x = orig.find(letter, idx)
        if x != -1:
            idx = x
        else:
            return False
    return True

你看过距离算法了吗?@IgnacioVazquez Abrams不,对不起。我对此并不熟悉。我可能会通过获取一个单词列表(比如ubuntu上的
/usr/share/dict/words)并逐个运行测试,返回匹配的单词……你看过距离算法了吗?@IgnacioVazquez Abrams不,对不起。我对此并不熟悉。我可能会通过获取一个单词列表(比如ubuntu上的
/usr/share/dict/words)并逐个运行测试,返回匹配的单词……我原以为这比正则表达式方法要慢:
re.search('.'.'.join(word),orig)不是“无”
…但实际上速度更快+1我原以为这比正则表达式方法慢:
re.search('.'.'.join(word),orig)不是None
…但实际上更快+1.