Program Palindrom w Javie | Program Java do sprawdzania Polindromu

Opublikowany: 2021-02-26

Spis treści

Wstęp

Java zyskała wiele uwagi wśród programistów ze względu na swoją prostotę, neutralność architektury, niezależność od platformy, rozproszone wykonywanie i możliwość ponownego wykorzystania. Ponadto Java ma wiele predefiniowanych bibliotek do bezproblemowego programowania. I wszyscy będą entuzjastycznie nastawieni do kodowania w takim języku.

Przechodząc teraz do naszego tematu, napiszemy kod java, aby sprawdzić, czy dane wejście jest palindromem, czy nie.

Mówi się, że liczba lub słowo jest palindromem, jeśli pozostaje takie samo po odwróceniu. Możemy zaimplementować rozwiązanie iteracyjnie, jak i rekurencyjnie. Więc zacznijmy!

Iteracyjny kod Java

Pomysł jest prosty; zadeklarujemy zmienną „reverse”, która przechowuje odwróconą liczbę naszego wejścia.

W każdej iteracji pomnożymy zmienną odwrotną przez 10 (aby wypełnić pozycję jednostki zerem). Następnie dodamy resztę liczby wejściowej po podzieleniu jej przez 10. Po dodaniu reszty podzielimy liczbę wejściową przez 10 (aby usunąć liczbę w pozycji jednostki).

Powyższy algorytm zatrzymamy, gdy liczba wejściowa stanie się 0, a liczba występująca w zmiennej odwrotnej będzie odwrotnością liczby wejściowej.

podniesienie klasy publicznej{

public static void main(String[] args) {

int n=12221;

int odwrócona=0;

int temp=n;

podczas (temp>0) {

rewers=rewers*10;

reverse=reverse+temp%10;

temp=temp/10;

}

jeśli(rewers==n)

System.out.print(n+” to palindrom”);

w przeciwnym razie

System.out.print(n+” nie jest palindromem”);

}

}

W powyższym kodzie zadeklarowaliśmy zmienną 'n' przechowującą początkową liczbę i musimy sprawdzić, czy liczba n jest palindromem, czy nie. W pętli while będziemy postępować zgodnie z algorytmem, który omówiliśmy wcześniej. I na koniec sprawdzamy, czy odwrócona liczba jest równa liczbie początkowej, czy nie. Jeśli zmieniona liczba i początkowe liczby są podobne, drukujemy to jako inny palindrom, a nie jako palindrom.

Teraz ten kod będzie działał tylko dla danych wejściowych liczb całkowitych. A jeśli chcemy sprawdzić, czy dane słowo jest palindromem, czy nie, musimy sobie z tym poradzić za pomocą napisów. A oto kod, jak to zrobić.

podniesienie klasy publicznej{

public static void main(String[] args) {

Ciąg s=”wirnik”;

String reverse=nowy String();

for(int i=s.length()-1;i>=0;i–)

reverse=reverse+s.charAt(i);

if(s.equals(reverse))

System.out.print(s+” to palindrom”);

w przeciwnym razie

System.out.print(s+” nie jest palindromem”);

}

}

W powyższym kodzie dodajemy znaki początkowego ciągu od ogona do nagłówka do odwróconego ciągu i sprawdzamy, czy jest on równy początkowemu ciągowi, czy nie. Zakodowaliśmy ciąg ze słowem, ale możemy go zainicjować za pomocą danych wejściowych użytkownika przy użyciu klasy skanera.

Rekurencyjny kod Java

W tej implementacji będziemy porównywać pierwszy i ostatni znak. A jeśli są równe, powtarzaj dalej dla pozostałego ciągu.

Ale ta logika nie zadziała dla ciągów, które mają nieparzystą liczbę znaków. Jeśli więc włączymy przypadek bazowy, w którym ciąg znaków kończymy jako palindrom, jeśli długość ciągu wynosi jeden, tzn. pozycja pierwszego i ostatniego znaku jest taka sama. To rozwiązałoby nasz problem z nieparzystymi ciągami, ponieważ wrócimy do środkowego elementu, a następnie uznamy go za palindrom, ponieważ w środku pozostaje tylko jeden znak.

podniesienie klasy publicznej{

public static boolean isPalindrome(String str, int low, int high){

jeśli(niski==wysoki)

zwróć prawdę;

if(str.charAt(low)!=str.charAt(high))

zwróć fałsz;

jeśli(wysoki-niski>1)

return isPalindrome(str,low+1,high-1);

zwróć prawdę;

}

public static void main(String[] args) {

Ciąg s1=”wirnik”;

Ciąg s2=”programowanie”;

System.out.println(isPalindrome(s1,0,s1.length()-1));

System.out.println(isPalindrome(s2,0,s2.length()-1));

}

}

W powyższym kodzie napisaliśmy funkcję, która oczekuje ciągu znaków z dwiema liczbami całkowitymi jako parametrami. A dwie liczby całkowite, niska i wysoka, to wskaźniki, które śledzą znaki, które należy sprawdzić. A jeśli imiona na pozycji low i high są równe.

wywołamy tę samą funkcję ze zaktualizowanymi parametrami tak, że łańcuch zostanie skrócony z obu stron o jeden znak. A jeśli wskaźniki niski i wysoki spotykają się lub występuje między nimi pojedynczy znak, to doszliśmy do środka sznurka i uznaliśmy to za palindrom.

Teraz przetestujmy na sucho kod ciągu „rotor”. Początkowo niski to 0, a wysoki to 4. Ponieważ znak na 0 pozycji ('r') jest równy znakowi na 4 pozycji ('r'), wykonamy rekurencyjne wywołanie z low zaktualizowanym jako low +1 i wysoki zaktualizowano jako wysoki-1.

Teraz low to 1, a high to 3, ponieważ znaki na tych pozycjach są równe, ponownie wykonamy wywołanie rekurencyjne. Teraz low to 2, a high to 2, i uruchamia przypadek bazowy, w którym low jest równoważne high, więc zwrócimy prawdę.

Możemy również zaimplementować funkcję rekurencyjną, aby sprawdzić, czy liczba całkowita jest palindromem, czy nie, a oto proces, jak to zrobić.

statyczna wartość logiczna isPalindrome(int n, int rev, int temp){

jeśli(temp==0)

powrót n==obr;

obr=obr*10;

return isPalindrome(n,rev+temp%10,temp/10);

}

Zauważ, że w powyższej funkcji początkowo n i temp są takie same. Bo w końcu musimy porównać liczbę odwrotną z liczbą początkową, więc wszystkie obliczenia są wykonywane na tej samej zmiennej. Nie należy zmieniać początkowego numeru.

Przeczytaj także: Pomysły i tematy projektów Java

Ucz się kursów oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Zrozumieliśmy definicję palindromu, przeszliśmy przez iteracyjne i rekurencyjne kody sprawdzające, czy ciąg/liczba jest palindromem, czy nie. Znamy kod z przykładu próbnego. Teraz, gdy już wiesz o implementacji kodu sprawdzającego palindrom, spróbuj zaimplementować go za pomocą klasy skanera i spróbuj zakodować go przy użyciu koncepcji OOP.

Jeśli chcesz poprawić swoje umiejętności w języku Java, musisz zdobyć te projekty Java. Jeśli chcesz dowiedzieć się więcej o Java, programowaniu pełnego stosu, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie programowania pełnego stosu, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9+ projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Czym jest palindrom?

Zdanie palindromiczne to literacka kompozycja, fraza, werset lub słowo, czytające to samo od tyłu lub do przodu. Palindrom to rodzaj gry słów, w szczególności słowo lub fraza (zdanie), które czyta to samo do tyłu lub do przodu. Palindrom to słowo, fraza, liczba lub inna sekwencja znaków, która czyta to samo do tyłu lub do przodu. Na przykład Człowiek, plan, kanał, Panama! jest palindromem. Niektóre palindromy nie są słowami, na przykład numer 106601. Niektóre palindromy to wyrażenia, na przykład Pani, jestem Adam.

Jak przygotować się do rozmowy w Javie?

Jeśli chcesz być ekspertem Java, musisz najpierw upewnić się, że kilka rzeczy jest w porządku. Przede wszystkim musisz mieć dobrą praktyczną znajomość języka Java. Po drugie, powinieneś dobrze rozumieć Java API. Nie musisz mieć absolutnego opanowania interfejsu API, ale powinieneś rozumieć, co jest dostępne i kiedy używać której klasy. Wreszcie, musisz dobrze zrozumieć wirtualną maszynę Java. Na przykład powinieneś być w stanie napisać tłumacza dla prostego języka. Jeśli prowadzisz rozmowę kwalifikacyjną na stanowisko kompilatora, nie masz nic przeciwko.

Jak pisać dobre programy w Javie?

Niektóre z najlepszych praktyk podczas pisania programu w java to: Zawsze używaj „klasy publicznej”, aby rozpocząć zajęcia. Nigdy nie używaj 'public static void main' wewnątrz klasy. Nigdy nie używaj słowa kluczowego „this” wewnątrz klasy. Nigdy nie używaj modyfikatora „final” w metodach. Nigdy nie używaj modyfikatora „static” w zmiennych instancji. Nigdy nie twórz zmiennych „publicznych”, chyba że jest to absolutnie konieczne. Zawsze miej dobrą konwencję nazewnictwa. Nigdy nie twórz zmiennej zawierającej więcej niż jedną literę z przyrostkiem numerycznym. Unikaj tworzenia zmiennych z więcej niż jednym słowem. Nigdy nie używaj słowa kluczowego „this” wewnątrz metody. Nigdy nie używaj słowa kluczowego „przerwa”.