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.