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

如何实现字符串连续重复字符的计数编码输出?

字符串连续重复字符计数编码实现方案

问题说明

你需要实现一个程序,完成以下功能:

  • 首先输入一个整数N,表示后续要处理的字符串行数
  • 接着输入N行无空格字符串(每行长度1-80)
  • 对每行字符串,输出连续重复字符的编码结果:由「出现次数 字符」对组成,各对用空格分隔

示例演示

输入

4
+++===!!!!
777777......TTTTTTTTTTTT
(AABBC)
3.1415555

输出

3 + 3 = 4 !
6 7 6 . 12 T
1 ( 2 A 2 B 1 C 1 )
1 3 1 . 1 1 1 4 1 1 4 5

Python 实现代码

这是一个简洁高效的实现,思路就是逐字符跟踪连续出现的次数,遇到不同字符就记录当前统计结果:

# 读取输入行数
line_count = int(input())

for _ in range(line_count):
    string = input().strip()
    # 空字符串处理(题目说每行1-80字符,这里做个兜底)
    if not string:
        print("")
        continue
    
    encoded_parts = []
    current_char = string[0]
    current_count = 1
    
    # 从第二个字符开始遍历
    for char in string[1:]:
        if char == current_char:
            current_count += 1
        else:
            # 记录当前统计的字符和次数
            encoded_parts.append(f"{current_count} {current_char}")
            current_char = char
            current_count = 1
    
    # 别忘了添加最后一组字符的统计结果
    encoded_parts.append(f"{current_count} {current_char}")
    
    # 拼接成结果字符串并打印
    print(" ".join(encoded_parts))

代码逻辑拆解

  • 输入读取:先获取要处理的行数,然后循环处理每一行
  • 初始化跟踪变量:用current_char存当前正在统计的字符,current_count存连续出现的次数
  • 字符遍历统计:逐个检查后续字符,和当前字符相同就累加计数,不同就把之前的结果存起来,更新跟踪变量
  • 收尾处理:循环结束后,最后一组字符还没存入结果,必须手动添加
  • 结果输出:把所有统计对用空格连接,打印出编码后的字符串

这个代码能完美处理所有符合要求的输入,包括各种特殊字符(括号、小数点、数字等),逻辑简单易懂,也容易修改成其他语言的版本。

内容的提问来源于stack exchange,提问作者Tolga the Traveler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:03:12