You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理Wordle游戏中的重复字符?现有代码匹配逻辑修复需求

Wordle重复字符反馈逻辑修复

原代码的核心问题是未考虑目标词中字符的出现次数,仅通过"字符是否存在"判断O标记,导致重复字符被错误匹配。以下是修复方案:

修复后的代码

wordle = "woods"
user_input = input("Enter guess: ")

# 统计目标词中各字符的剩余可用次数
char_available = {}
for char in wordle:
    char_available[char] = char_available.get(char, 0) + 1

feedback = ["-"] * len(wordle)

# 第一步:处理位置完全匹配的字符(标记X),消耗对应字符的可用次数
for i in range(len(wordle)):
    if user_input[i] == wordle[i]:
        feedback[i] = "X"
        char_available[user_input[i]] -= 1

# 第二步:处理存在但位置错误的字符(标记O),仅当字符还有可用次数时标记
for i in range(len(wordle)):
    if feedback[i] == "-":
        current_char = user_input[i]
        if current_char in char_available and char_available[current_char] > 0:
            feedback[i] = "O"
            char_available[current_char] -= 1

# 输出结果
print()
for let in user_input:
    print(let, end=" ")
print()
for char in feedback:
    print(char, end=" ")

逻辑说明

  1. 统计字符可用次数:先遍历目标词,记录每个字符的出现次数,后续匹配时会逐步消耗这些次数。
  2. 优先处理精确匹配(X):第一遍遍历先标记所有位置完全正确的字符,每标记一个就减少对应字符的可用次数,避免后续重复匹配。
  3. 处理位置错误的匹配(O):第二遍遍历仅处理未标记的位置,只有当字符在目标词中还有剩余可用次数时,才标记O并消耗次数,否则保持-。

验证示例

  • 示例1:目标词woods(仅含1个s),用户输入sassy
    第一遍无精确匹配,第二遍第一个s标记O后,s的可用次数变为0,剩余两个s无法匹配,最终反馈为O - - - -,符合预期。
  • 示例2:目标词brass(含2个s),用户输入sassy
    第一遍第四个s精确匹配标记X,s的可用次数变为1;第二遍第一个s标记O后次数耗尽,第三个s无法匹配,最终反馈为O O - X -,符合预期。

内容的提问来源于stack exchange,提问作者user22047030

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:22:44