Pchełki SQL, odcinek 16: palindromy i odwrócenia

Dzisiaj króciutka dwupchełka (jakkolwiek dziwnie by to słowo nie brzmiało) dotycząca – raz jeszcze – mojego ulubionego materiału pchełkowego, czyli słownika wyrazów języka dopuszczalnych w grach słownych. Około 2.7 miliona słówek, a więc niemało, jest się czym pobawić.

Dzisiaj poszukamy sobie wyrazów, które są swoimi własnymi palindromami (czyli, z polskiego na nasze, czytają się wspak tak samo jak niewspak), a także par wyrazów, które są swoimi wzajemnymi odwróceniami (a więc na przykład żółw – włóż, jeżeli ktoś kojarzy ten kawał, chwała mu za to, a jak nie, to niech da znać, mogę opowiedzieć).

Użyjemy tej samej bazy danych i tabeli, którą bawiliśmy się ostatnio.

Najpierw poszukamy słówek palindromicznych (czyli takich, którym wszystko jedno, od tyłu czy klasycznie):

SELECT slowo
FROM slowa
WHERE slowo = reverse(slowo)
ORDER BY LEN(slowo) DESC;

Kilka pierwszych wyników:

malajalam, okrawarko, owocowo, rotator, motetom, anilina, apokopa, imagami, imakami, imamami

Łącznie takich słów jest 142, a więc bieżące oznaczenie półrocza pierwszej rejestracji auta w Irlandii. Przypadek? Nie sądzę…

Drugie zapytanie znajdzie nam wszystkie pary słówek, takie, że jedno z nich przeczytane odtylcowo daje w wyniku to drugie, i wice wersal:

SELECT s1.slowo + ' - ' + s2.slowo s
FROM slowa s1 
JOIN slowa s2 ON s1.slowo = reverse(s2.slowo) and s1.slowo < s2.slowo

Kilka najdłuższych wyników:

amonalem – melanoma, monofoto – otofonom, monokin – nikonom, ketenom – monetek, kinolem – melonik, kokonom – monokok, menatem – metanem, moletom – motelom, monerom – morenom, akronim – minorka, alaksem – meskala, alaksom – moskala.

Takich par jest w sumie 606, a więc dokładnie dwukrotność liczby 303, oznaczenia słynnego polskiego dywizjonu myśliwców z drugiej wojny światowej. To już na pewno jest jakiś spisek Żydów, cyklistów, masonów i wielkich korporacji.

Obydwa powyższe zapytania nie zużyły więcej niż po 20 sekund każde, a więc nie starałem się o żadne dodatkowe optymalizacje. Schody zaczynają się, kiedy spróbujemy poszukać palindromów dwuwyrazowych (lub, ogólnie, N-wyrazowych) – obawiam się, że prostej a zarazem wydajnej metody nie ma. Jeżeli któryś z Czytelników jednak chciałby się podjąć tematu, proszę dać głos w komentarzu.

Autor: xpil

Po czterdziestce. Żonaty. Dzieciaty. Komputerowiec. Krwiodawca. Emigrant. Rusofil. Lemofil. Sarkastyczny. Uparty. Mól książkowy. Ateista. Apolityczny. Nie oglądam TV. Uwielbiam matematykę. Walę prosto z mostu. Gram na paru instrumentach. Lubię planszówki. Słucham bluesa, poezji śpiewanej i kapel a’capella. || Kliknij tutaj po więcej szczegółów ||

Dodaj komentarz

2 komentarzy do "Pchełki SQL, odcinek 16: palindromy i odwrócenia"

Powiadom o
avatar
Sortuj wg:   najnowszy | najstarszy | oceniany
5000lib
Gość

Co to za czary są? Gdzie trafiłam?

wpDiscuz