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

如何统计字符串不同字符数 奇偶判断代码始终输出ODD排查

功能异常排查

原代码预期实现「统计字符串中不同字符总数,判断总数为奇数还是偶数」的功能,但无论输入什么都输出ODD,核心问题有3个:

  • 缩进不符合Python语法规范:Python靠缩进划分代码块,原代码中flag=0、内层循环、重复判断的逻辑缩进层级完全混乱,直接导致运行逻辑和预期偏离。
  • 统计逻辑完全错误:原代码没有对不重复字符做计数,反而每次遇到无重复的字符时,直接把check变量赋值为该单字符,最终check只会存储最后一个遍历到的不重复字符,长度恒为1,因此len(check)%2永远不等于0,自然永远输出ODD。
  • 遍历逻辑冗余:原代码用双重循环判断重复的时间复杂度为O(n²),完全没有必要,用内置结构可以用极低的成本实现去重。
修正实现

最简实现(利用集合自动去重特性)

集合的特性就是元素不重复,把字符串转成集合后直接取长度,就是不同字符的总个数,代码简洁运行效率高:

s = input()
unique_count = len(set(s))
print("ODD" if unique_count % 2 else "EVEN")

手动遍历实现(保留逐字符判断的逻辑)

如果需要手动实现去重判断、不直接依赖集合特性,可以用列表存储已经出现过的字符,逐字符遍历统计:

s = input()
unique_chars = []
for c in s:
    if c not in unique_chars:
        unique_chars.append(c)
unique_count = len(unique_chars)
if unique_count % 2 != 0:
    print("ODD")
else:
    print("EVEN")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:12:09