簡體   English   中英

重復計算部分和完全匹配的字符串

[英]Double counting partial and exact string matches

我正在用python編寫一個程序,該程序生成一個隨機的字母字符串,並讓用戶嘗試猜測該字符串(可能的字母為ROYGB或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

替代(我想更多的是Pythonic的)解決方案:

exact_matches = sum(1 for (x, y) in zip(guess, secret) if x == y)
partial_matches = len(set(secret) & set(guess)) - exact_matches

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM