Programma Palindrome in Java | Programma Java per controllare la Polindrome
Pubblicato: 2021-02-26Sommario
introduzione
Java ha guadagnato molta ribalta tra i programmatori grazie alla sua semplicità, neutralità dell'architettura, indipendenza dalla piattaforma, esecuzione distribuita e riusabilità. Inoltre, Java ha molte librerie predefinite per una programmazione senza interruzioni. E tutti saranno entusiasti di programmare in un linguaggio del genere.
Ora arrivando al nostro argomento, scriveremo un codice java per verificare se l'input fornito è palindromo o meno.
Un numero o una parola si dice palindromo se rimane lo stesso dopo averlo invertito. E possiamo implementare una soluzione in modo iterativo e ricorsivo. Quindi iniziamo!
Codice Java iterativo
L'idea è semplice; dichiareremo una variabile 'reverse' che memorizza il numero invertito del nostro input.
Moltiplichiamo la variabile inversa per 10 (per riempire la posizione dell'unità con 0) in ogni iterazione. Quindi, aggiungeremo il resto del numero di input dopo averlo diviso per 10. Dopo aver aggiunto il resto, divideremo il numero di input per 10 (per rimuovere il numero nella posizione dell'unità).
Interromperemo l'algoritmo sopra quando il numero di input diventa 0 e il numero presente nella variabile inversa sarà il contrario del numero di input.
aggiornamento in classe pubblica{
public static void main(String[] args) {
int n=12221;
int inverso=0;
int temp=n;
mentre(temp>0){
inverso=inverso*10;
inverso=inverso+temp%10;
temp=temp/10;
}
if(reverse==n)
System.out.print(n+”è un palindromo”);
altro
System.out.print(n+”non è un palindromo”);
}
}
Nel codice sopra, abbiamo dichiarato una variabile 'n' che memorizza il numero iniziale e dobbiamo verificare se il numero n è palindromo o meno. Nel ciclo while, seguiremo l'algoritmo di cui abbiamo discusso in precedenza. E infine, stiamo controllando se il numero invertito è uguale al numero iniziale o meno. Se il numero modificato e i numeri iniziali sono simili, lo stiamo stampando come un altro palindromo, non un palindromo.
Ora, questo codice funzionerà solo per un input intero. E se vogliamo controllare se una determinata parola è palindromo o meno, dobbiamo affrontarla usando le stringhe. Ed ecco il codice per farlo.
aggiornamento in classe pubblica{
public static void main(String[] args) {
Stringa s="rotore";
Stringa inversa=nuova Stringa();
for(int i=s.lunghezza()-1;i>=0;i–)
reverse=reverse+s.charAt(i);
if(s.equals(reverse))
System.out.print(s+”è un palindromo”);
altro
System.out.print(s+”non è un palindromo”);
}
}
Nel codice sopra, aggiungiamo i caratteri della stringa iniziale dalla coda alla testa alla stringa inversa e controlliamo se è uguale alla stringa iniziale o meno. Abbiamo codificato la stringa con una parola, ma possiamo inizializzarla con l'input dell'utente utilizzando la classe scanner.
Codice Java ricorsivo
In questa implementazione, confronteremo il primo e l'ultimo carattere. E se sono uguali, si ripetono ulteriormente per la stringa rimanente.
Ma questa logica non funzionerà per le stringhe che hanno un numero dispari di caratteri. Quindi se includiamo un caso base, dove concludiamo una stringa come palindromo, se la lunghezza di una stringa è uno, cioè la posizione del primo e dell'ultimo carattere è la stessa. Questo eliminerebbe il nostro problema con le stringhe di dimensioni dispari perché ricorderemo all'elemento centrale e quindi lo concluderemo come palindromo poiché nel mezzo rimane solo un singolo carattere.
aggiornamento in classe pubblica{
public static boolean isPalindrome(String str, int low, int high){
se(basso==alto)
restituisce vero;
if(str.charAt(basso)!=str.charAt(alto))
restituire falso;
se(alto-basso>1)
return isPalindrome(str,basso+1,alto-1);
restituisce vero;
}
public static void main(String[] args) {
Stringa s1="rotore";
Stringa s2="programmazione";
System.out.println(isPalindrome(s1,0,s1.length()-1));
System.out.println(isPalindrome(s2,0,s2.length()-1));
}
}
Nel codice sopra, abbiamo scritto una funzione che prevede una stringa, due interi come parametri. E i due interi, basso, alto sono i puntatori che tengono traccia dei caratteri che devono essere controllati. E se i nomi nella posizione bassa e alta sono uguali.
chiameremo la stessa funzione con parametri aggiornati in modo tale che la stringa venga ridotta da entrambi i lati di un carattere. E se i puntatori basso e alto si incontrano o è presente un solo carattere tra di loro, allora siamo arrivati fino a metà della stringa e la concludiamo come un palindromo.
Ora, eseguiamo un test del codice per la stringa "rotor". Inizialmente, il minimo è 0 e il massimo è 4. Poiché il carattere in 0a posizione ('r') è uguale al carattere in 4a posizione ('r'), faremo una chiamata ricorsiva con basso aggiornato come basso +1 e alto aggiornati come alto-1.
Ora, basso è 1 e alto è 3 poiché i caratteri in quelle posizioni sono uguali, faremo di nuovo una chiamata ricorsiva. Ora basso è 2 e alto è 2 e attiva il caso base in cui basso è equivalente ad alto, quindi restituiremo true.
Possiamo anche implementare una funzione ricorsiva per verificare se un intero è palindromo o meno, ed ecco il processo per farlo.
statico booleano isPalindrome(int n, int rev, int temp){
se(temp==0)
ritorno n==giro;
giro=giro*10;
return isPalindrome(n,rev+temp%10,temp/10);
}
Si noti che, nella funzione precedente, inizialmente n e temp sono gli stessi. Perché alla fine, dobbiamo confrontare il numero inverso con il numero iniziale, quindi tutti i calcoli vengono eseguiti sulla stessa variabile. Il numero iniziale non deve essere modificato.
Leggi anche: Idee e argomenti del progetto Java
Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Conclusione
Abbiamo compreso la definizione di palindromo, abbiamo esaminato codici iterativi e ricorsivi per verificare se una stringa/numero è palindromo o meno. Conosciamo il codice da una prova di esempio di esempio. Ora che sei a conoscenza dell'implementazione di un codice per controllare il palindromo, prova a implementarlo usando la classe scanner e prova a codificarlo usando i concetti OOP.
Se desideri migliorare le tue abilità Java, devi mettere le mani su questi progetti Java. Se sei interessato a saperne di più su Java, lo sviluppo full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, 9+ progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Cos'è un palindromo?
La frase palindromica è una composizione letteraria, una frase, un verso o una parola, che legge la stessa all'indietro o in avanti. Un palindromo è un tipo di gioco di parole, in particolare una parola o una frase (frase) che legge la stessa all'indietro o in avanti. Un palindromo è una parola, una frase, un numero o un'altra sequenza di caratteri che legge lo stesso avanti o indietro. Ad esempio, Un uomo, un piano, un canale, Panama! è un palindromo. Alcuni palindromi non sono parole, come il numero 106601. Alcuni palindromi sono frasi, come Madam, I'm Adam.
Come prepararsi per un colloquio Java?
Se vuoi essere un esperto di Java, devi prima assicurarti che alcune cose siano in ordine. Innanzitutto è necessaria una buona conoscenza pratica del linguaggio Java. In secondo luogo, dovresti avere una buona conoscenza dell'API Java. Non è necessario avere una padronanza assoluta dell'API, ma è necessario comprendere cosa è disponibile e quando utilizzare quale classe. Infine, è necessario avere una profonda conoscenza della Java Virtual Machine. Ad esempio, dovresti essere in grado di scrivere un interprete per una lingua semplice. Se stai intervistando per una posizione di sviluppo del compilatore, sei fuori dai guai.
Come scrivere buoni programmi Java?
Alcune delle migliori pratiche durante la scrittura del programma in Java sono: Utilizzare sempre 'classe pubblica' per avviare la classe. Non usare mai 'public static void main' all'interno di una classe. Non utilizzare mai la parola chiave "questa" all'interno della classe. Non utilizzare mai il modificatore 'finale' sui metodi. Non utilizzare mai il modificatore 'statico' sulle variabili di istanza. Non rendere mai le variabili "pubbliche" a meno che non sia assolutamente necessario. Avere sempre una buona convenzione di denominazione. Non creare mai una variabile più di una lettera con un suffisso numerico. Evita di creare variabili con più di una parola. Non utilizzare mai la parola chiave "questa" all'interno del metodo. Non utilizzare mai la parola chiave "break".