Python строка вышла из индекса - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь удалить 'X' и символ перед X, и вот мой код

s = input()
for i in range(len(s)):
    if s[i] == 'X':
        s = s.replace("X", "")
        s = s.replace(s[i], "")

Я вышел из индекса ошибки

    if s[i] == 'X':
IndexError: string index out of range

В чем проблема здесь и как это исправить?

Ответы [ 4 ]

1 голос
/ 18 апреля 2020

Раствор

f= []
x = input()
for i in range(len(x)-1):
    if x[i+1]=='X' or x[i]=='X':
        continue
    else:
        f.append(x[i])

final = ''.join(f)  


0 голосов
/ 18 апреля 2020

На мой взгляд, лучшим способом решения этой проблемы было бы использование регулярных выражений. Альтернативный метод может быть таким.
Решение:

s = input()
def removeX(s):
    pos = s.find('X')
    if pos == -1:
        print(s)
        return
    elif pos == 0:
        s = s[pos+1:]
    else:
        s = s[:pos-1]+s[pos+1:]
    removeX(s)

removeX(s)
0 голосов
/ 18 апреля 2020

Решение:

s = input()
ls = len(s)
x_pos = []
for i in range(ls):
    if s[i] == 'X':
        if i != 0:
            x_pos.append(i - 1)
            x_pos.append(i)
        else:
            x_pos.append(i)
new_s = ''
for j in range(ls):
    if j not in x_pos:
        new_s += s[j]

print(new_s)
0 голосов
/ 18 апреля 2020

Вы можете использовать регулярные выражения:

import re
s = "aXbcXd" #example string
s = re.sub(".?X", "", s)
print(s)
#output: bd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...