如何检查子字符串是否包含" apple"中的所有字母。

时间:2017-11-06 05:59:09

标签: python substring anagram

如果我有字符串" axplpett"我想返回true,因为它的子串" axplpe"包含苹果的所有字母。

我正在考虑使用set方法,但apple有重复的字符。

4 个答案:

答案 0 :(得分:3)

只是这个?

{{1}}

答案 1 :(得分:2)

r = 'aapple'
w = list('axplpett')
try:
    for x in r:
        w.pop(w.index(x))
    print(True) # return True
except ValueError:
    print(False) # return False

答案 2 :(得分:0)

也许这个: -

def findsub (sub,main):
    l1 = [i for i in sub]
    l2 = [i for i in main]
    for item in l1:
        if item in l2:
            l2.remove(item)
        else:
            return False
    return True
print(findsub('apple','appleccssfftt'))

答案 3 :(得分:0)

您可以使用Counter轻松完成此操作。

我们减去目标字符串中的字母数量' apple'从测试字符串中的字母数' axplpett'。目标字符串中任何不在测试字符串中的字母都将导致这些字母的负数。然后我们否定该结果,该结果剥离正计数或零计数,如果目标字符串包含在测试字符串中,则结果计数器将为空。

from collections import Counter

target = 'apple'
test = 'axplpett'
counts = Counter(test)
counts.subtract(target)
print(not -counts)

counts = Counter('axplett')
counts.subtract(target)
print(not -counts)

<强>输出

True
False