如何在Python/Java中每隔3个位置逐字符插入字符串?
字符串插入问题解决方案
需求
把字符串string_2的字符逐个插入到string_1的每隔第3个位置,示例:
- string_1:
wwwaabkccgkll - string_2:
toadhp - 预期输出:
wwtaaobkaccdgkhllp
你的代码问题
你写的代码有几个明显问题:
- 大小写混乱:Python是大小写敏感的,
Test_str和test_str、Last和last、For/Len和for/len这些不一致的变量名/关键字会直接报错。 - 插入逻辑错误:你只取了
challenge[k]单个字符反复插入,而且k的自增逻辑不对;另外每次插入后原字符串长度会增加,用i%3==0计算插入位置会导致偏移,结果完全不符合预期。 - 初始化错误:
new_st=challenge[k]在k未定义时就调用,会触发NameError。
正确Python实现
string_1 = "wwwaabkccgkll" string_2 = "toadhp" result = list(string_1) char_pos = 0 insert_pos = 3 # 第一个插入位置是第4个字符前(索引3) while char_pos < len(string_2) and insert_pos <= len(result): result.insert(insert_pos, string_2[char_pos]) char_pos += 1 insert_pos += 4 # 插入后下一个位置后移4位(原3位+新增的1位) # 处理string_2剩余未插入的字符 if char_pos < len(string_2): result.extend(string_2[char_pos:]) print(''.join(result))
运行后会输出预期的wwtaaobkaccdgkhllp。如果替换成你的测试用例Test_str="hiimdumbiknow"和challenge="toadh",也能得到正确的插入结果。
内容的提问来源于stack exchange,提问作者Naren M.S
相关产品推荐
相关产品推荐

