Poprawiłem twój przykład
[ PRZETESTOWANE DLA NP : "ALA" "AAA" CZY TEŻ "AAAG"]
import java.util.Scanner;
public class czyPalindronMetody {
public static void main(String[] args) {
System.out.println("Podaj slowo: ");
String slowo = getString();
slowo.toLowerCase();
System.out.println("czy to slowo jest palindronem? " + czyPalindrom(slowo));
}
public static String getString() {
return new Scanner(System.in).next();
}
public static boolean czyPalindrom(String slowo) {
int x = slowo.length();
int counter=0; // liczy powtorzenia
for (int i = 0; i < slowo.length()/2; i++) {
//case ma sprawdzac czy sa rowne
if (slowo.charAt(i) == slowo.charAt(x-i-1)) {
//tak sa rowne to zwiekszamy licznik
counter ++;
}
}
// jesli counter bedzie takiej samej wielkosci jak x- to palindrom
// przez dwa dlatego ze wystarczy nam polowa ciagu :)
return (counter==x/2);
}
}
Pomyśl? Sprawdzać masz palindrom czyli, czy słowo od końca jest takie samo jak od przodu... więc możesz ZOPTYMALIZOWAĆ TO ZADANIE, ograniczając się do przeglądania tlyko połowy ciągu, dlatego że pierwsza część Cię nie interesuje :) a w pętli przez te pierwszą część przechodzisz porównując z końcem do połowy- środka.
Jeśli zliczeń PRAWEJ STRONY OD ŚRODKA, jest taka sama ilość względem długości/2 czyli połowy to znaczy że każdy znam od PRAWEJ STRONY ;] był po lewej w tej samej kolejności