如何用Python实现将字符串转为连续重复字符+次数的格式
字符串连续重复字符段拼接次数的正确实现
原代码存在两个核心问题:
- 统计的是整个字符串中字符的总出现次数,而非连续重复的次数,完全不符合需求;
- 每次循环都会覆盖
totalstr变量,最终只返回最后一个字符的拼接结果,前面的处理全部丢失。
以下是符合需求的正确实现:
def mycode(myString): if not myString: # 处理空字符串的边界情况 return "" result = [] current_char = myString[0] count = 1 for char in myString[1:]: if char == current_char: count += 1 else: # 将当前连续字符段与次数拼接后存入结果列表 result.append(current_char * count + str(count)) current_char = char count = 1 # 处理最后一段未完成的连续字符 result.append(current_char * count + str(count)) return ''.join(result) # 测试示例 print(mycode("aaabbcddddd")) # 输出: aaa3bb2c1ddddd5
代码逻辑说明
- 先判断输入是否为空,避免索引越界错误;
- 初始化当前跟踪的字符和计数,从字符串第一个字符开始;
- 遍历后续字符:
- 若与当前字符相同,计数加1;
- 若不同,则将当前连续字符段(重复对应次数的字符)和计数拼接后存入结果列表,再更新跟踪的字符和计数;
- 循环结束后,处理最后一段连续字符,最终将结果列表拼接成完整字符串返回。
内容的提问来源于stack exchange,提问作者AbdulQASDET
相关产品推荐
相关产品推荐

