Java-Programm zum Prüfen, ob zwei Zeichenfolgen Anagramme sind | Anagramm-Programm
Veröffentlicht: 2021-07-23Inhaltsverzeichnis
Weniger bekannte Fakten über Java
Als eine der langlebigsten Programmiersprachen wird Java aufgrund seiner robusten und flexiblen Funktionen weltweit eingesetzt. Die Stabilität und Vielseitigkeit von Java haben es zu einer der gefragtesten Programmiersprachen gemacht. Es gibt jedoch einige weniger bekannte Fakten über diese sichere Programmiersprache. Lernen wir einige davon kennen.
- Oak ist der ursprüngliche Name von Java.
- Beim Erlernen dieser Programmiersprache können Sie viel verdienen.
- Java ist die zweithäufigste Programmiersprache der Welt, die erste ist C.
- Etwa 3 Milliarden Geräte auf der ganzen Welt arbeiten mit Java.
- Java ist eine Programmiersprache, die zwischen Groß- und Kleinschreibung unterscheidet. dh „Final“ und „final“ sind im Java-Code nicht dasselbe. Lesen Sie mehr darüber, warum Java bei den Entwicklern so beliebt ist.
Ein Überblick über Anagramm
Wenn eine Zeichenfolge durch Umordnen ihrer Zeichen in eine andere Zeichenfolge umgewandelt wird, werden die beiden Zeichenfolgen als Anagramme voneinander bezeichnet. Die Anzahl der Zeichen in der Anfangszeichenfolge und der erhaltenen Zeichenfolge sollte jedoch gleich sein. Um das Konzept eines Anagramms besser zu verstehen, betrachten wir zwei Zeichenfolgen, „Gott“ und „Hund“.
Die Zeichenfolgen „Gott“ und „Hund“ sind Anagramme voneinander, da die erste Zeichenfolge neu angeordnet werden kann, um die zweite zu erhalten, indem einfach die Positionen der Zeichen „d“ und „g“ ausgetauscht werden. Für zwei beliebige Eingabezeichenfolgen wird die Häufigkeit jedes Zeichens berechnet, um zu prüfen, ob die Zeichenfolgen Anagramme voneinander sind oder nicht. Ein Anagramm einer Zeichenfolge kann also als jede andere Zeichenfolge definiert werden, die dieselben Zeichen mit derselben Häufigkeit wie in der Eingabezeichenfolge in beliebiger Reihenfolge enthält.
Algorithmus für Anagrammprogramm in Java
Schritt 1: Definieren Sie die beiden Eingabezeichenfolgen.
Schritt 2: Die Länge jeder Saite wird bestimmt. Eingabestrings sind keine Anagramme voneinander, wenn sie unterschiedliche Stringlängen haben.
Schritt 3: Wenn die Zeichenfolgen die gleiche Länge haben, werden die Zeichen der Zeichenfolge in Kleinbuchstaben umgewandelt, um den Vergleich zu erleichtern.
Schritt 4: Die Zeichenfolgenzeichen werden entweder durch eingebaute Funktionen sortiert oder in ein Zeichenarray umgewandelt und dann sortiert.
Schritt 5: Das sortierte Array von Zeichen wird auf Gleichheit geprüft.
Implementierung des Anagram-Programms in Java
Es gibt mehrere Lösungen, um einen Code zu implementieren, um herauszufinden, ob zwei Zeichenfolgen Anagramme sind oder nicht. Für jede in den nachfolgenden Abschnitten besprochene Lösung bildet Schritt 2 des oben beschriebenen Algorithmus die Grundlage und erleichtert den vorzeitigen Ausstieg, wenn die Zeichenfolgenlängen nicht übereinstimmen. Lassen Sie uns in den folgenden Abschnitten mehr über die verschiedenen Arten des Schreibens eines Codes für die Anagrammlogik erfahren.
Sortieransatz
Die Zeichen jeder Eingabezeichenfolge können sortiert werden, um zwei normalisierte Zeichenfelder zu erhalten. Wenn die normalisierten Arrays beider Eingabezeichenfolgen gleich sind, werden die Zeichenfolgen als Anagramme voneinander betrachtet und umgekehrt.
Das Verständnis und die Implementierung dieses Codes sind einfacher. Die Zeitkomplexität der obigen Lösung ist O(n log n) und es wird zusätzlicher Speicherplatz benötigt, um Zeichenarrays der Eingabezeichenfolgen zu speichern.
Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Zählansatz zur Implementierung der Anagrammlogik
Bei diesem Ansatz wird die Anzahl der Existenzen jedes Zeichens in den zwei Eingabeketten gemessen. Wenn die Häufigkeit jedes Zeichens in beiden Zeichenfolgen identisch ist, sind die Zeichenfolgen Anagramme voneinander.
Lassen Sie uns ein einzelnes Histogramm erstellen, um etwas Speicher zu sparen. In der ersten Zeichenfolge werden die Zählungen jedes Zeichens erhöht, während die Zählungen für die zweite verringert werden. Wenn das Endergebnis alles auf Null ausgleicht, dann sind die Zeichenfolgen Anagramme.
Diese Lösung wird schneller ausgeführt als die vorherige Lösung und ihre zeitliche Komplexität beträgt O(n). Zum Zählen der Zeichen wird jedoch zusätzlicher Platz benötigt. Diese Lösung ist praktisch nur für Zeichenketten mit einem kleineren Zeichenumfang wirksam. Eine weitere Tatsache bei dieser Lösung ist, dass sie eine begrenzte Anzahl eingebauter Java-Funktionen verwendet und somit die Länge des Codes erhöht.
Kasse: Java-Projektideen und -themen
Bestimmen Sie Anagramme durch Überprüfung mit MultiSet
Die Verwendung von MultiSet, einer Sammlung, die den auftragsunabhängigen Vergleich mit identischen Elementen unterstützt, vereinfacht den Prozess des Zählens und Vergleichens in dieser Lösung.
Jeder Eingabestring wird zunächst in ein MultiSet von Zeichen umgewandelt und dann auf Parität geprüft.
Die Zeitkomplexität dieser Lösung ist O(n). Es ähnelt dem Zählansatz zur Bestimmung von Anagrammen. Es kann jedoch für Saiten mit größeren Längen effizient arbeiten. Außerdem umfasst die Codierung eine größere Anzahl von Java-Bibliotheksfunktionen.
Buchstabenbasierter Ansatz zur Bestimmung von Anagrammen
Alle bisher diskutierten Lösungen betrachten die Satzzeichen auch als Teil der Zeichenkette. Darüber hinaus wird bei diesen Lösungen zwischen Groß- und Kleinschreibung unterschieden. Der buchstabenbasierte Ansatz implementiert einen Code zur Überprüfung der Eingabezeichenfolgen basierend auf der linguistischen Definition von Anagrammen. Bei diesem Ansatz werden die Leerzeichen und Satzzeichen nicht als Teil der Eingabezeichenfolge betrachtet.
Der erste Schritt bei der Implementierung einer buchstabenbasierten Lösung ist die Eliminierung unerwünschter Zeichen und die Umwandlung aller gültigen Zeichen in Kleinbuchstaben. Nach diesem Schritt kann jede der oben diskutierten Implementierungen verwendet werden, um zu prüfen, ob die Zeichenfolgen Anagramme sind oder nicht.
Wenn Sie mehr über Java und Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Softwareentwicklung von upGrad & IIIT-B an – Spezialisierung auf Full-Stack-Entwicklung, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen bietet , 9+ Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.