如何从字符串中删除中间字符的确切数量?



我正在尝试根据给定的数字删除字符串中中间字符的数量。例如,如果字符串mahir并且我被告知删除一个中间字符,那将是h的,并且输出将是mair的,如果给定的数字是 2,则输出将是mar的。

我已经弄清楚如何删除中间字符,但在正确删除它时遇到麻烦。这是我的代码:

remover = int(input())
s = "mahir"
counter = len(s) - remover
while True:
h = len(s)//2
mod = (len(s) + 1) % 2
s = s[:h - mod] + s[h + 1:]
if len(s) == counter:
break
print(s)

如果我输入remover多个,我最终会得到一个 inifinte 循环。如何解决此问题并删除正确数量的中间字符?

您可以像这样对字符串进行切片:

s = 'mahir'
n = int(input())
i = (len(s) - n + 1) // 2
print(s[:i] + s[i + n:])

最新更新