如果我致电matcher.match('bad')
,则应返回提供列表中存在的'bad'
所有排列的列表。在此示例中,输出将为['abd']
。到目前为止,这是我尝试过的,但我似乎无法匹配这种模式。
class Matcher():
def __init__(self, string_list):
self.string_list = string_list
def match(self, string_match):
matched_list = [string for string in string_list if string_match in string]
return matched_list
string_list = ['abd', 'abdd', 'fret', 'gilk', 'lokm']
matcher = Matcher(string_list)
print(matcher.match('abd'))
答案 0 :(得分:3)
这是一个O( n log n )解决方案:
rm -rf ~/.rstudio/sessions/active/session-*
答案 1 :(得分:0)
您可以随时使用collections.Counter()
:
from collections import Counter
string_list = ['abd', 'abdd', 'fret', 'gilk', 'lokm']
my_str = 'bad'
print([x for x in string_list if Counter(my_str) == Counter(x)])
# ['abd']