如何检查字符串是否包含子字符串的所有字符?

我需要查找字符串是否包含子字符串的所有字符。因此,对于 7 个字符的字符串,我想知道 5 个字符的子字符串的字符是否在字符串中,没有重复字母(如果子字符串有 2 个字母 a,则该字符串最多需要 2 个字母 a)。


举个例子 :


Substring = 'aabfy'

String1 = 'aabcfgy'

String2 = 'abcfgmy' 

String3 = 'aaabcfy'

那么 String1 和 String3 为 True,而 String2 为 False。因为子字符串在 1 和 3 中而不在 2 中(双 a,但它也可以是任何其他字母)。


我希望我能解释自己,任何问题我都可以并且会回答。


守候你守候我
浏览 227回答 2
2回答

长风秋雁

或者str.count在列表理解中使用,使用all:def f(s):    return all(s.count(i)>=Substring.count(i) for i in Substring)print(f(String1))print(f(String2))print(f(String3))输出:TrueFalseTrue

牛魔王的故事

您可以通过collections.Counter以下方式使用:from collections import Counterdef contains_all(string, substring):    c1, c2 = Counter(string), Counter(substring)    return all(c1[x] >= c2[x] for x in c2)这将确保子字符串中的每个字符在包含字符串中的次数至少相同。>>> contains_all('aaabcfy', 'aabfy')True>>> contains_all('abcfgmy', 'aabfy')False>>> contains_all('aabcfgy', 'aabfy')True
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python