Przygotowuję się do matury z informatyki i próbuję rozwiązywać arkusze z poprzednich lat. Z jednym z nich mam niestety problem. Coś jest złego w moim kodzie ponieważ nie działa we wszystkich przypadkach.
W załączniku zamieszczam opis części zadania: https://4programmers.net/assets/15472/Przechwytywanie.PNG
Link do pliku ze słowami: https://drive.google.com/file/d/1ades29HzcVRjde5IJ-EjVOjGdy3PIa_p/view?usp=sharing
Poniżej zamieszczam swój kod. Czy są w nim jakieś błędy?
def palindrom (ostatnia, slowo):
p = 0
k = ostatnia
while (not((p==k) or (p+1==k))):
if slowo[p] != slowo[k]:
return False
k-=1
p+=1
return True
t = 0
mn = 50
mx = 0
sn = ""
sx = ""
np = 0
plik = open("slowa.txt", "r")
haslo = open("hasla_b.txt", "w")
slowa = open("slowa_b.txt", "w")
slowa.write("1\n")
suma_dlugosci = 0
while t!=1000:
t+=1
x = plik.readline()
print(x)
znak = x[0]
ost = len(x)-1
while ost>=0:
if x[ost] == znak:
test = palindrom(ost, x)
if test == True:
w1 = x[0:ost+1]
print(">", w1)
np=ost+1
ost=-1
ost-=1
print("<", x[0:np], x[np:len(x)])
w2 = x[np:len(x)]
odw = w2[::-1]
nowe = odw+w1+w2
print(nowe)
haslo.write(nowe)