Odwracanie ciągu znaków

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Odwracanie ciągu znaków polega na utworzeniu nowego tekstu, w którym znaki występują w odwrotnej kolejności niż w tekście wejściowym. Jeśli wejściem jest "abc", wynikiem będzie "cba".

Typowy algorytm

Najczęściej algorytm przechodzi po znakach tekstu od końca do początku i dopisuje je do zmiennej wynikowej.

Przykład w Javie:

public static String reverse(String str) {
    String output = "";
    for (int i = str.length() - 1; i >= 0; i--) {
        output += str.charAt(i);
    }
    return output;
}

Działanie pętli:
- str.length() - 1 wskazuje indeks ostatniego znaku,
- warunek i >= 0 pozwala dojść do pierwszego znaku,
- i-- zmniejsza indeks po każdym obiegu pętli,
- charAt(i) pobiera znak z podanej pozycji.

Ważne szczegóły egzaminacyjne

W Javie indeksy znaków zaczynają się od 0, więc ostatni znak ma indeks length() - 1. Jeżeli pętla idzie od końca tekstu do początku, zwykle oznacza to właśnie odwracanie ciągu.

W pytaniach egzaminacyjnych należy odróżnić ten algorytm od:
- sprawdzania palindromu — tam porównuje się tekst z jego odwrotnością lub porównuje znaki parami,
- wyszukiwania znaku — tam zwykle sprawdza się warunek charAt(i) == szukanyZnak,
- sortowania znaków — tam znaki są porządkowane według kodów, np. ASCII/Unicode.

Uwaga praktyczna

W Javie wielokrotne używanie += dla obiektów String może być nieefektywne przy długich tekstach. W praktyce często stosuje się StringBuilder:

String reversed = new StringBuilder(str).reverse().toString();

Na egzaminie najważniejsze jest jednak rozpoznanie idei: przejście od ostatniego znaku do pierwszego tworzy odwrócony ciąg.