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

Codingame Chuck Norris游戏:二进制转Unary编码代码无输出求助

解决Chuck Norris编码无输出问题

嘿,我来帮你搞定这个Codingame的Chuck Norris编码问题~你说print语句没输出,大概率是代码逻辑没写完,导致没有生成编码结果也就没法输出。我们先把完整的实现逻辑理清楚,再一步步解决:

编码规则回顾

先把整个流程明确下来,避免走偏:

  1. 将输入字符串的每个字符转换为7位二进制字符串(不足7位要补前导0,比如字符C的ASCII是67,二进制是1000011,刚好7位)
  2. 遍历二进制字符串,把连续相同的0/1分成一组
  3. 对每个分组按照规则转码:
    • 如果是连续的1:输出0 + 空格 + 对应长度的0(比如1个1就是0 0,3个1就是0 000)
    • 如果是连续的0:输出00 + 空格 + 对应长度的0(比如4个0就是00 0000)
  4. 把所有分组的结果用空格连接起来,就是最终的unary编码

完整可运行代码

import sys

def chuck_norris_encode(message):
    # 第一步:把字符串转成7位二进制串
    binary_str = ''
    for char in message:
        # ord()获取字符ASCII值,format转成7位二进制(补前导0)
        binary_str += format(ord(char), '07b')
    
    if not binary_str:
        return ""
    
    # 第二步:分组统计连续的0/1
    encoded_parts = []
    current_char = binary_str[0]
    count = 1
    
    for c in binary_str[1:]:
        if c == current_char:
            count += 1
        else:
            # 处理当前分组
            if current_char == '1':
                encoded_parts.append(f"0 {'0'*count}")
            else:
                encoded_parts.append(f"00 {'0'*count}")
            current_char = c
            count = 1
    # 别忘了处理最后一个分组
    if current_char == '1':
        encoded_parts.append(f"0 {'0'*count}")
    else:
        encoded_parts.append(f"00 {'0'*count}")
    
    # 拼接所有编码片段
    return ' '.join(encoded_parts)

# 读取输入(适配Codingame的标准输入)
message = input().strip()
# 生成编码结果
result = chuck_norris_encode(message)
# 输出最终结果
print(result)

为什么你的代码没输出?

你提供的代码片段只写了导入模块和message = input...,没有后续的转码逻辑和输出语句,自然不会有任何内容打印出来。上面的代码补全了所有关键步骤:

  • 正确转换字符串为7位二进制串
  • 统计连续相同字符的分组
  • 按照规则生成编码片段
  • 最后用print输出结果

测试示例(输入CC)

当输入CC时:

  1. 每个C转二进制是1000011,拼接后得到二进制串10000111000011
  2. 分组后是:1(1个)、0000(4个)、111(3个)、0000(4个)、11(2个)
  3. 对应编码片段:0 0、00 0000、0 000、00 0000、0 00
  4. 最终输出:0 0 00 0000 0 000 00 0000 0 00,完全符合你给出的示例要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:58:56