将一个字符串插入另一个字符串时出错
Error while inserting one string in another
我有一个字符串 s= 'aaeekmnnry'
和另一个字符串 p = 'aka'
。我想在 s 的第二个索引处插入 p,这样我的输出就是 ans = 'aaakaeekmnrry'
。为此,我编写了以下代码:
f = p[0]
i = 0
while i < len(s):
if p[0] <= s[i]:
i+=1
else:
break
ans = ''.join(s[:i]) + ''.join(p) + ''.join(s[i:])
但是我的索引 i
变成了字符串的长度并且输出是 'aaeekmnnryaka'
,我期望 i
变成 2。我做错了什么?
您的条件有误。当你看到 s
中的字母在字典序上更高时,你应该突破。
i = 0
while i < len(s):
if p[0] < s[i]:
break
else:
i += 1
ans = s[:i] + p + s[i:]
# aaakaeekmnnry
你离正确答案还差一字!您的 <=
想要成为 >=
- 当您的 p
字符串的第一个字符 大于 时,您不断递增位置(或等于) s
中您当前正在检查的位置的字符。除此之外,您的代码是正确的。
我有一个字符串 s= 'aaeekmnnry'
和另一个字符串 p = 'aka'
。我想在 s 的第二个索引处插入 p,这样我的输出就是 ans = 'aaakaeekmnrry'
。为此,我编写了以下代码:
f = p[0]
i = 0
while i < len(s):
if p[0] <= s[i]:
i+=1
else:
break
ans = ''.join(s[:i]) + ''.join(p) + ''.join(s[i:])
但是我的索引 i
变成了字符串的长度并且输出是 'aaeekmnnryaka'
,我期望 i
变成 2。我做错了什么?
您的条件有误。当你看到 s
中的字母在字典序上更高时,你应该突破。
i = 0
while i < len(s):
if p[0] < s[i]:
break
else:
i += 1
ans = s[:i] + p + s[i:]
# aaakaeekmnnry
你离正确答案还差一字!您的 <=
想要成为 >=
- 当您的 p
字符串的第一个字符 大于 时,您不断递增位置(或等于) s
中您当前正在检查的位置的字符。除此之外,您的代码是正确的。