Mam do napisania program który wyszukuje i wypisuje wyrazy wzajemnie odwrotne. I napisałem lecz mam problem, jeżeli w liście pojawia się wyraz, który jest palindromem to mój program nie działa poprawnie. Jakieś pomysły jak to naprawić?
Parę wyrazów nazwiemy wzajemnie odwrotnymi, jeżeli pierwszy z nich jest równy drugiemu przeczytanemu wspak.
def reverse_words(words):
length = 0
reverse = []
while length < len(words):
reverse.append(words[length][::-1])
length += 1
reverse = set(reverse)
words = set(words)
tmp = words - reverse
tmp = tmp ^ words
printing(tmp)
def printing(set_of_words):
list = []
list.extend(set_of_words)
while len(list) > 0:
print(list[0]," - ", list[0][::-1])
word2 = list[0]
word3 = list[0][::-1]
list.remove(word2)
list.remove(word3)
words = [ 'kot', 'tok', 'ac', 'ba', 'marcin', 'adam', 'mada','a']
reverse_words(words)
Tak jak w tej liście wyrazów pojawia się 'a' to wywala mi błąd, jak to mogę rozwiązać? Póki co robię to na zasadzie, że odwracam te wyrazy z listy i wrzucam do 2 listy następnie wyszukuję ich część wspólną, a później wypisuje parę wyrazów i je usuwam z list.
Zależy mi na wydajności więc pętla w pętli odpada.