Biorąc pod uwagę ciąg znaków S
i listę indeksów X
, zmodyfikuj S
, usuwając element przy każdym indeksie, S
jednocześnie wykorzystując ten wynik jako nową wartość S
.
Na przykład, biorąc pod uwagę S = 'codegolf'
i X = [1, 4, 4, 0, 2]
,
0 1 2 3 4 5 6 7 |
c o d e g o l f | Remove 1
c d e g o l f | Remove 4
c d e g l f | Remove 4
c d e g f | Remove 0
d e g f | Remove 2
d e f
Twoim zadaniem jest wykonanie tego procesu, zebranie wartości S
po każdej operacji i wyświetlenie każdego z nich w nowej linii w kolejności. Ostateczna odpowiedź brzmi:
S = 'codegolf'
X = [1, 4, 4, 0, 2]
Answer:
codegolf
cdegolf
cdeglf
cdegf
degf
def
- To jest golf golfowy, więc ustaw swój kod tak krótko, jak to możliwe.
- Możesz założyć, że wartości w
X
są zawsze poprawnymi indeksamiS
i możesz użyć indeksowania opartego na 0 lub na podstawie 1. - Ciąg będzie zawierać tylko
[A-Za-z0-9]
- Albo
S
albox
może być pusty. JeśliS
jest pusty, oznacza to, żex
również musi być pusty. - Możesz również traktować
S
jako listę znaków zamiast ciągu. - Możesz wydrukować dane wyjściowe lub zwrócić listę ciągów znaków. Dopuszczalne są wiodące i końcowe białe znaki. Każda forma wyniku jest w porządku, o ile jest łatwa do odczytania.
Przypadki testowe
S = 'abc', x = [0]
'abc'
'bc'
S = 'abc', x = []
'abc'
S = 'abc', x = [2, 0, 0]
'abc'
'ab'
'b'
''
S = '', x = []
''
S = 'codegolfing', x = [10, 9, 8, 3, 2, 1, 0]
'codegolfing'
'codegolfin'
'codegolfi'
'codegolf'
'codgolf'
'cogolf'
'cgolf'
'golf'
len(x)+1
ciągi.
S
jako listę postaci?