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

HackerRank《Game of Thrones》算法题求助:逻辑错误仅过10/21测试用例

HackerRank《Game of Thrones》算法题错误排查

你的代码逻辑核心错误在于:回文串的判断依据是「出现次数为奇数的字母总数」,而非「出现次数恰好为1的字母数」。

举个例子:字符串"aaabbb"中,a出现3次、b出现3次,都是奇数次数,这类字符串无法构成回文,但你的代码会因为统计到0个次数为1的字母,错误返回YES;再比如字符串"aaaaa",a出现5次(奇数),你的代码统计次数为1的字母数是0,会正确返回YES——这说明你的逻辑只覆盖了部分场景,漏掉了次数为3、5等其他奇数的情况。

看你的代码细节:

  • 遍历字母次数时,你只计数key ==1的情况,完全忽略了3、5等其他奇数次数的字母,这才是导致大部分测试用例失败的核心原因。

修正后的思路:统计每个字母的出现次数,然后数其中奇数次数的字母数量,若该数量≤1则返回YES,否则返回NO。

修正后的Python代码:

def gameOfThrones(s):
    alpha_count = {}
    for char in s:
        alpha_count[char] = alpha_count.get(char, 0) + 1
    
    odd_counter = 0
    for count in alpha_count.values():
        if count % 2 != 0:
            odd_counter += 1
    
    return 'YES' if odd_counter <= 1 else 'NO'

额外补充:你预先创建包含所有26个字母的字典其实没必要,直接统计字符串中实际出现的字母即可,这样更高效,但这不是影响测试用例通过的核心问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:50:23