Palindrome-Programm in Java | Java-Programm zum Überprüfen von Polindrome

Veröffentlicht: 2021-02-26

Inhaltsverzeichnis

Einführung

Java hat unter Programmierern aufgrund seiner Einfachheit, Architekturneutralität, Plattformunabhängigkeit, verteilten Ausführung und Wiederverwendbarkeit viel Aufmerksamkeit erregt. Außerdem verfügt Java über viele vordefinierte Bibliotheken für eine nahtlose Programmierung. Und jeder wird begeistert sein, in einer solchen Sprache zu programmieren.

Kommen wir nun zu unserem Thema, wir werden einen Java-Code schreiben, um zu prüfen, ob die gegebene Eingabe ein Palindrom ist oder nicht.

Eine Zahl oder ein Wort wird als Palindrom bezeichnet, wenn es nach der Umkehrung gleich bleibt. Und wir können eine Lösung sowohl iterativ als auch rekursiv implementieren. Also lasst uns anfangen!

Iterativer Java-Code

Die Idee ist einfach; Wir deklarieren eine Variable "umgekehrt", die die umgekehrte Zahl unserer Eingabe speichert.

Wir werden die umgekehrte Variable bei jeder Iteration mit 10 multiplizieren (um die Position der Einheit mit 0 zu füllen). Dann addieren wir den Rest der eingegebenen Zahl, nachdem wir sie durch 10 geteilt haben. Nachdem wir den Rest hinzugefügt haben, teilen wir die eingegebene Zahl durch 10 (um die Zahl an der Position der Einheit zu entfernen).

Wir stoppen den obigen Algorithmus, wenn die eingegebene Zahl 0 wird, und die in der Umkehrvariablen vorhandene Zahl ist die Umkehrung der eingegebenen Zahl.

öffentliche Klasse upGrad{

public static void main(String[] args) {

int n=12221;

int umgekehrt=0;

int temp=n;

während(temp>0){

rückwärts = rückwärts * 10;

rückwärts = rückwärts + temp% 10;

Temp = Temp / 10;

}

if(umgekehrt==n)

System.out.print(n+“ ist ein Palindrom“);

anders

System.out.print(n+“ ist kein Palindrom“);

}

}

Im obigen Code haben wir eine Variable „n“ deklariert, die die Anfangszahl speichert, und wir müssen prüfen, ob die Zahl n ein Palindrom ist oder nicht. In der While-Schleife folgen wir dem Algorithmus, den wir zuvor besprochen haben. Und schließlich prüfen wir, ob die umgekehrte Zahl gleich der ursprünglichen Zahl ist oder nicht. Wenn die geänderte Nummer und die Anfangsnummern ähnlich sind, drucken wir sie als Palindrom, nicht als Palindrom.

Jetzt funktioniert dieser Code nur für eine ganzzahlige Eingabe. Und wenn wir überprüfen wollen, ob ein bestimmtes Wort ein Palindrom ist oder nicht, müssen wir es mit Zeichenketten behandeln. Und hier ist der Code dafür.

öffentliche Klasse upGrad{

public static void main(String[] args) {

String s=“Rotor“;

Zeichenfolge umkehren = neue Zeichenfolge ();

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

reverse=reverse+s.charAt(i);

if(s.equals(umgekehrt))

System.out.print(s+“ ist ein Palindrom“);

anders

System.out.print(s+“ ist kein Palindrom“);

}

}

Im obigen Code hängen wir die Zeichen der Anfangszeichenfolge vom Ende bis zum Kopf an die Rückwärtszeichenfolge an und prüfen, ob sie gleich der Anfangszeichenfolge sind oder nicht. Wir haben die Zeichenfolge mit einem Wort hartcodiert, aber wir können sie mit Benutzereingaben mithilfe der Scannerklasse initialisieren.

Rekursiver Java-Code

In dieser Implementierung werden wir das erste und das letzte Zeichen vergleichen. Und wenn sie gleich sind, wiederholen sie sich weiter für die verbleibende Zeichenfolge.

Diese Logik funktioniert jedoch nicht für Zeichenfolgen mit einer ungeraden Anzahl von Zeichen. Wenn wir also einen Basisfall einbeziehen, in dem wir eine Zeichenfolge als Palindrom abschließen, wenn die Länge einer Zeichenfolge eins ist, dh die Position des ersten und letzten Zeichens gleich ist. Dies würde unser Problem mit ungeraden Zeichenfolgen lösen, da wir auf das mittlere Element zurückkommen und es dann als Palindrom abschließen, da nur ein einziges Zeichen in der Mitte verbleibt.

öffentliche Klasse upGrad{

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

wenn (niedrig==hoch)

gib true zurück;

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

falsch zurückgeben;

wenn (hoch-niedrig>1)

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

gib true zurück;

}

public static void main(String[] args) {

Zeichenfolge s1 = "Rotor";

String s2="Programmierung";

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

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

}

}

Im obigen Code haben wir eine Funktion geschrieben, die einen String erwartet, zwei ganze Zahlen als Parameter. Und die beiden Ganzzahlen Low und High sind die Zeiger, die die Zeichen verfolgen, die überprüft werden müssen. Und wenn die Namen an der Position Low und High gleich sind.

Wir rufen dieselbe Funktion mit aktualisierten Parametern auf, sodass die Zeichenfolge von beiden Seiten um ein Zeichen verkleinert wird. Und wenn die Zeiger niedrig und hoch aufeinandertreffen oder ein einzelnes Zeichen dazwischen vorhanden ist, dann sind wir bis zur Mitte der Zeichenfolge gelangt und schließen sie als Palindrom ab.

Lassen Sie uns nun einen Probelauf des Codes für die Zeichenfolge „rotor“ durchführen. Anfangs ist Low 0 und High 4. Da das Zeichen an Position 0 ('r') gleich dem Zeichen an Position 4 ('r') ist, führen wir einen rekursiven Aufruf durch, wobei Low als Low aktualisiert wird +1 und hoch als hoch-1 aktualisiert.

Jetzt ist niedrig 1 und hoch 3, da die Zeichen an diesen Positionen gleich sind, machen wir wieder einen rekursiven Aufruf. Jetzt ist niedrig 2 und hoch 2, und es löst den Basisfall aus, in dem niedrig gleich hoch ist, also geben wir wahr zurück.

Wir können auch eine rekursive Funktion implementieren, um zu prüfen, ob eine ganze Zahl ein Palindrom ist oder nicht, und hier ist der Prozess dafür.

statischer boolescher Wert isPalindrome(int n, int rev, int temp){

if(temp==0)

return n==rev;

Umdrehung = Umdrehung * 10;

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

}

Beachten Sie, dass in der obigen Funktion anfänglich n und temp gleich sind. Denn schließlich müssen wir die umgekehrte Zahl mit der ursprünglichen Zahl vergleichen, sodass alle Berechnungen mit derselben Variablen durchgeführt werden. Die Anfangsnummer sollte nicht verändert werden.

Lesen Sie auch: Ideen und Themen für Java-Projekte

Lernen Sie Softwarekurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

Wir haben die Definition von Palindrom verstanden, sind durch iterative und rekursive Codes gegangen, um zu überprüfen, ob eine Zeichenfolge/Zahl ein Palindrom ist oder nicht. Wir kennen den Code durch einen Probelauf des Beispielbeispiels. Jetzt, da Sie wissen, wie Sie einen Code implementieren, um das Palindrom zu überprüfen, versuchen Sie, ihn mit der Scanner-Klasse zu implementieren, und versuchen Sie, ihn mit OOP-Konzepten zu codieren.

Wenn Sie Ihre Java-Kenntnisse verbessern möchten, müssen Sie diese Java-Projekte in die Hände bekommen. Wenn Sie mehr über Java und Full-Stack-Entwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training bietet, 9+ Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Was ist ein Palindrom?

Palindromischer Satz ist eine literarische Komposition, ein Satz, ein Vers oder ein Wort, das rückwärts oder vorwärts gelesen wird. Ein Palindrom ist eine Art Wortspiel, insbesondere ein Wort oder eine Phrase (Satz), die rückwärts oder vorwärts gleich gelesen wird. Ein Palindrom ist ein Wort, eine Phrase, eine Zahl oder eine andere Folge von Zeichen, die sich rückwärts oder vorwärts lesen lassen. Zum Beispiel: Ein Mann, ein Plan, ein Kanal, Panama! ist ein Palindrom. Einige Palindrome sind keine Wörter, wie die Zahl 106601. Einige Palindrome sind Sätze, wie Madam, I'm Adam.

Wie bereitet man sich auf ein Java-Interview vor?

Wenn Sie ein Java-Experte werden möchten, müssen Sie zunächst sicherstellen, dass einige Dinge in Ordnung sind. In erster Linie müssen Sie über gute Kenntnisse der Java-Sprache verfügen. Zweitens sollten Sie ein gutes Verständnis der Java-API haben. Sie müssen die API nicht absolut beherrschen, aber Sie sollten wissen, was verfügbar ist und wann welche Klasse verwendet werden sollte. Schließlich müssen Sie ein tiefes Verständnis der Java Virtual Machine haben. Beispielsweise sollten Sie in der Lage sein, einen Dolmetscher für eine einfache Sprache zu schreiben. Wenn Sie sich für eine Stelle als Compiler-Entwickler bewerben, sind Sie aus dem Schneider.

Wie schreibt man gute Java-Programme?

Einige der besten Praktiken beim Schreiben des Programms in Java sind: Verwenden Sie immer „öffentliche Klasse“, um die Klasse zu starten. Verwenden Sie niemals „public static void main“ innerhalb einer Klasse. Verwenden Sie niemals das Schlüsselwort „this“ innerhalb der Klasse. Verwenden Sie niemals den Modifikator "final" für Methoden. Verwenden Sie niemals den 'static'-Modifikator für die Instanzvariablen. Machen Sie Variablen niemals öffentlich, es sei denn, es ist absolut notwendig. Haben Sie immer eine gute Namenskonvention. Machen Sie eine Variable niemals aus mehr als einem Buchstaben mit einem numerischen Suffix. Vermeiden Sie Variablen mit mehr als einem Wort. Verwenden Sie niemals das Schlüsselwort „this“ innerhalb der Methode. Verwenden Sie niemals das Schlüsselwort „break“.