Python - Linjärsökning efter "kuperade" ord
Hej, se följande:
Jag har hittills gjort följande:
def linsokkup(ordlista):
for i in ordlista:
for j in ordlista:
#if j[-1:] + j[:-1] == i:
#print (i + " " + j)
#if j[-2:] + j[:-2] == i:
#print (i + " " + j)
#if j[-3:] + j[:-3] == i:
#print (i + " " + j)
#if j[-4:] + j[:-4] == i:
#print (i + " " + j)
Där de kommenterade är de olika fallen som finns, ordlistan jag har består av ord med endast fem bokstäver.
Funktionen linsok() som jag har skapat från en tidigare uppgift är:
def linsok(ordlista, ord):
if ord not in ordlista:
return False
return True
Det står i uppgiften att funktionen linsokkup() ska anropa linsok(). Varför? Och hur ska implementera den isåfall?
I stället för din inre loop (for j in ordlista) kan du först konstruera de omvända orden och anropa linsok för att se om det finns i listan.
T.ex. om i är "pinal" så gör du "lpina" och anropar linsok med det. Sedan "alpin" och sedan "nalpi" (antar jag).
Laguna skrev:I stället för din inre loop (for j in ordlista) kan du först konstruera de omvända orden och anropa linsok för att se om det finns i listan.
T.ex. om i är "pinal" så gör du "lpina" och anropar linsok med det. Sedan "alpin" och sedan "nalpi" (antar jag).
Tack för hjälpen!