[Zadanie rekrutacyjne 2] Odwrócenie kolejności elementów stringu

Data publikacji: 2016-03-15 | Tagi:

Kolejna misja, to odwracanie stringów (jakkolwiek miałoby to nie brzmieć ;)).

Zakładamy, że mamy wejściowy string "hello world" i chcemy na wyjściu otrzymać "dlrow olleh".

Tu w zasadzie mamy dwa pomysły. Pierwszy to użycie reversed() - wbudowanej funkcji pythona. Funkcja zwraca 'odwrócony iterator':

In [1]: txt = "hello world"

In [2]: ''.join(reversed(txt))
Out[2]: 'dlrow olleh'

Drugi to użycie rozszerzonego mechanizmu slice.

In [1]: txt = "hello world"

In [2]: txt[::-1]
Out[2]: 'dlrow olleh'

W zasadzie obie opcje są pythoniczne, tyle, że pierwsza jest sporo wolniejsza.

Druga natomiast może być mało czytelna dla mniej doświadczonych programistów pythona, ale chwila zastanowienia daje nam rezultat - początek i koniec wycinka pomijamy, więc bierzemy cały tekst, a krok ustawiamy na -1, więc bierzemy wyrazy od ostatniego.

Jeśli miałbym wybrać - wybrałbym drugą opcję. Wg mnie jest lepsza.

Pozostają jeszcze funkcje odwracające pisane zupełnie na piechotę. W takiej formie zadania moim zdaniem są zupełnie do odrzucenia.


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: