将一个字符串插入另一个字符串时出错

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 中您当前正在检查的位置的字符。除此之外,您的代码是正确的。