如何拼接字符串?字符统计结果转指定格式字符串的实现问题
字符串字符计数格式转换解决方案
问题背景
需要实现函数ab(n),统计输入字符串中每个字符的出现次数,返回形如a2b2c1的拼接字符串。当前代码返回的是混合字符与数字的列表,需修改为目标格式。
修正后的代码方案
方案1:直接构建结果字符串
def ab(n): result = "" processed_chars = [] for char in n: if char not in processed_chars: processed_chars.append(char) count = n.count(char) result += f"{char}{count}" return result
方案2:列表收集后拼接(效率更优)
def ab(n): segments = [] processed_chars = [] for char in n: if char not in processed_chars: processed_chars.append(char) count = n.count(char) segments.append(char) segments.append(str(count)) return ''.join(segments)
关键修改说明
- 类型转换:将统计得到的数字次数转为字符串类型,确保能与字符拼接成目标格式。
- 去重逻辑优化:新增
processed_chars列表单独记录已处理的字符,避免原代码中因列表同时存储字符和数字导致的判断错误(例如输入含数字字符时,原逻辑会误判字符重复)。 - 结果拼接:要么直接累加字符串,要么用列表收集所有片段后通过
''.join()一次性拼接,后者在处理长字符串时效率更高。
测试验证
调用ab("aabbc"),两种方案均返回"a2b2c1",符合需求。
内容的提问来源于stack exchange,提问作者Adam Cora
相关产品推荐
相关产品推荐

