我正在用python编写一个程序,它生成一个随机的字母字符串,并让用户尝试猜测该字符串(从可能的字母R、O、Y、G、B或P中)。随机字符串有四个字符长,在用户输入猜测后,将告诉用户有多少个精确匹配,即正确的字母正确位置,以及有多少部分匹配,即正确的字母错误位置。问题是,我计算部分匹配的代码似乎会重复计算精确匹配。例如,如果代码是RGPB,并且用户猜测RGYO,它将报告2确切2部分。有什么关于如何最好地解决这个问题的见解吗?
partialMatches = 0
i = 0
while i < len(guess):
p = 0
while p < len(secret):
if guess[i] == secret[p]:
partialMatches = partialMatches + 1
p += 1
i += 1
发布于 2016-02-16 07:46:55
另一种(我认为更有Pythonic风格的)解决方案:
exact_matches = sum(1 for (x, y) in zip(guess, secret) if x == y)
partial_matches = len(set(secret) & set(guess)) - exact_matches
https://stackoverflow.com/questions/35426479
复制相似问题