擅长:python、mysql、java
<p>如果我现在理解的话,您想在<code>candidate = []</code>后面附加一个<code>part</code>,前提是所有元素都与ban组中的co-respondend-position元素匹配。但是在代码中,如果这些元素中的任何一个与它们都不匹配,那么您就是在<code>part</code>后面追加了<code>candidate</code>。
这就是为什么我要使用<code>flag</code>来跟踪<code>part</code>中的所有元素是否匹配</p>
<pre><code>from itertools import combinations
def check_id(user, ban):
for i in range(len(ban)):
if ban[i] == '*':
continue
elif user[i] != ban[i]:
return False
return True
candidates = []
def solution(user_group, ban_group):
for part in combinations(user_group, len(ban_group)):
flag = True
for i in range(len(part)):
flag = flag and check_id(part[i], ban_group[i])
if flag:
candidates.append(part)
return candidates
print(solution(["frodo", "fradi", "crodo", "abc123", "frodoc"], ["fr*d*", "abc1**"]))
</code></pre>