Programul Palindrom în Java | Program Java pentru a verifica polindromul

Publicat: 2021-02-26

Cuprins

Introducere

Java a câștigat multă atenție în rândul programatorilor datorită simplității, neutralității arhitecturii, independenței platformei, execuției distribuite și reutilizabilității. De asemenea, java are multe biblioteci predefinite pentru programare fără întreruperi. Și toată lumea va fi entuziasmată să codifice într-o astfel de limbă.

Acum, venind la subiectul nostru, vom scrie un cod java pentru a verifica dacă intrarea dată este un palindrom sau nu.

Se spune că un număr sau un cuvânt este un palindrom dacă rămâne același după ce îl inversează. Și putem implementa o soluție atât iterativ, cât și recursiv. Asadar, haideti sa începem!

Cod Java iterativ

Ideea este simplă; vom declara o variabilă „inversare” care stochează numărul inversat al intrării noastre.

Vom înmulți variabila inversă cu 10 (pentru a umple poziția unității cu 0) în fiecare iterație. Apoi, vom adăuga restul numărului de intrare după ce îl împărțim la 10. După ce adăugăm restul, vom împărți numărul de intrare la 10 (pentru a elimina numărul din poziția unității).

Vom opri algoritmul de mai sus când numărul de intrare devine 0, iar numărul prezent în variabila inversă va fi inversul numărului de intrare.

clasă publică upGrad{

public static void main(String[] args) {

int n=12221;

int invers=0;

int temp=n;

în timp ce(temp>0){

invers = invers*10;

reverse=reverse+temp%10;

temp=temp/10;

}

dacă (invers==n)

System.out.print(n+” este un palindrom”);

altfel

System.out.print(n+” nu este un palindrom”);

}

}

În codul de mai sus, am declarat o variabilă „n” care stochează numărul inițial și trebuie să verificăm dacă numărul n este un palindrom sau nu. În bucla while, vom urma algoritmul despre care am discutat mai devreme. Și, în sfârșit, verificăm dacă numărul inversat este egal cu numărul inițial sau nu. Dacă numărul modificat și numerele inițiale sunt similare, îl tipărim ca alt palindrom, nu ca palindrom.

Acum, acest cod va funcționa numai pentru o intrare întreg. Și dacă vrem să verificăm dacă un anumit cuvânt este un palindrom sau nu, trebuie să ne ocupăm de el folosind șiruri. Și iată codul pentru a face asta.

clasă publică upGrad{

public static void main(String[] args) {

String s=”rotor”;

String invers=new String();

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

reverse=reverse+s.charAt(i);

dacă (s.egal (invers))

System.out.print(s+” este un palindrom”);

altfel

System.out.print(s+” nu este un palindrom”);

}

}

În codul de mai sus, adăugăm caracterele șirului inițial de la coadă la cap la șirul invers și verificăm dacă este sau nu egal cu șirul inițial. Am codificat șirul cu un cuvânt, dar îl putem inițializa cu intrarea utilizatorului folosind clasa scanner.

Cod Java recursiv

În această implementare, vom compara primul și ultimul caracter. Și dacă sunt egale, se repetă mai departe pentru șirul rămas.

Dar această logică nu va funcționa pentru șirurile care au un număr impar de caractere. Deci, dacă includem un caz de bază, în care concluzionăm un șir ca un palindrom, dacă lungimea unui șir este una, adică poziția primului și ultimului caracter este aceeași. Acest lucru ar clarifica problema noastră cu șirurile de dimensiuni impare, deoarece vom recurge la elementul din mijloc și apoi îl vom încheia ca un palindrom, deoarece doar un singur caracter rămâne în mijloc.

clasă publică upGrad{

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

daca(scazut==mare)

returnează adevărat;

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

returnează fals;

dacă (mare-scăzută>1)

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

returnează adevărat;

}

public static void main(String[] args) {

String s1=”rotor”;

String s2=”programare”;

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

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

}

}

În codul de mai sus, am scris o funcție care așteaptă un șir, doi numere întregi ca parametri. Iar cele două numere întregi, mic, mare sunt indicatorii care țin evidența caracterelor care trebuie verificate. Și dacă numele de la poziția joasă și înaltă sunt egale.

vom apela aceeași funcție cu parametrii actualizați, astfel încât șirul să fie micșorat de ambele părți cu un caracter. Și dacă indicatoarele jos și înalte se întâlnesc sau un singur caracter este prezent între ele, atunci am ajuns până la mijlocul șirului și am încheiat-o ca un palindrom.

Acum, să facem o rulare uscată a codului pentru șirul „rotor”. Inițial, valoarea scăzută este 0, iar cea mare este 4. Deoarece caracterul din poziția 0 („r”) este egal cu caracterul din poziția a patra („r”), vom efectua un apel recursiv cu minus actualizat ca scăzut +1 și maxim actualizat ca maxim-1.

Acum, low este 1, iar mare este 3, deoarece caracterele din acele poziții sunt egale, vom efectua din nou un apel recursiv. Acum low este 2 și high este 2 și declanșează cazul de bază în care low este echivalent cu high, așa că vom returna true.

De asemenea, putem implementa o funcție recursivă pentru a verifica dacă un întreg este un palindrom sau nu și iată procesul pentru a face asta.

boolean static isPalindrom(int n, int rev, int temp){

if(temp==0)

return n==rev;

rev=rev*10;

returnare estePalindrom(n,rev+temp%10,temp/10);

}

Rețineți că, în funcția de mai sus, inițial n și temp sunt aceleași. Pentru că, în sfârșit, trebuie să comparăm numărul invers cu numărul inițial, astfel încât toate calculele sunt efectuate pe aceeași variabilă. Numărul inițial nu trebuie modificat.

Citiți și: Idei și subiecte de proiecte Java

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Am înțeles definiția palindromului, am parcurs codurile iterative și recursive pentru a verifica dacă un șir/număr este un palindrom sau nu. Cunoaștem codul printr-o serie de exemplu de exemplu. Acum că sunteți conștient de implementarea unui cod pentru a verifica palindromul, încercați să îl implementați folosind clasa scanerului și încercați să îl codificați folosind concepte OOP.

Dacă doriți să vă îmbunătățiți abilitățile Java, trebuie să puneți mâna pe aceste proiecte Java. Dacă sunteți interesat să aflați mai multe despre Java, dezvoltarea full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, 9+ proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce este un palindrom?

Propoziția palindromică este o compoziție literară, o frază, un vers sau un cuvânt, care se citește la fel înapoi sau înainte. Un palindrom este un tip de joc de cuvinte, în special un cuvânt sau o expresie (propoziție) care citește la fel înapoi sau înainte. Un palindrom este un cuvânt, o expresie, un număr sau o altă secvență de caractere care citește același înainte sau înapoi. De exemplu, Un om, un plan, un canal, Panama! este un palindrom. Unele palindrome nu sunt cuvinte, cum ar fi numărul 106601. Unele palindrome sunt expresii, cum ar fi Doamnă, eu sunt Adam.

Cum să te pregătești pentru un interviu Java?

Dacă vrei să fii un expert Java, trebuie să te asiguri mai întâi că câteva lucruri sunt în ordine. În primul rând, trebuie să aveți o bună cunoaștere a limbajului Java. În al doilea rând, ar trebui să înțelegeți bine API-ul Java. Nu trebuie să aveți o stăpânire absolută a API-ului, dar ar trebui să înțelegeți ce este disponibil și când să utilizați ce clasă. În cele din urmă, trebuie să aveți o înțelegere profundă a mașinii virtuale Java. De exemplu, ar trebui să puteți scrie un interpret pentru un limbaj simplu. Dacă faci interviuri pentru o poziție de dezvoltare a compilatorului, ai eliberat.

Cum se scriu programe Java bune?

Unele dintre cele mai bune practici în timpul scrierii programului în java sunt: ​​Utilizați întotdeauna „clasa publică” pentru a începe clasa. Nu utilizați niciodată „public static void main” în interiorul unei clase. Nu utilizați niciodată cuvântul cheie „acest” în cadrul clasei. Nu utilizați niciodată modificatorul „final” pentru metode. Nu utilizați niciodată modificatorul „static” pe variabilele de instanță. Nu faceți niciodată „publice” variabilele decât dacă este absolut necesar. Aveți întotdeauna o convenție bună de denumire. Nu faceți niciodată o variabilă mai mult de o literă cu un sufix numeric. Evitați să faceți variabile cu mai mult de un cuvânt. Nu utilizați niciodată cuvântul cheie „acest” în cadrul metodei. Nu utilizați niciodată cuvântul cheie „break”.