我正在尝试根据给定的数字删除字符串中的中间字符数。例如,如果字符串为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循环。如何解决此问题并删除正确数量的中间字符?
答案 0 :(得分:2)
您可以像这样对字符串进行切片:
s = 'mahir'
n = int(input())
i = (len(s) - n + 1) // 2
print(s[:i] + s[i + n:])