So verwenden Sie JavaScript, um die am häufigsten wiederholten Zeichen in einer Zeichenfolge abzurufen

So verwenden Sie JavaScript, um die am häufigsten wiederholten Zeichen in einer Zeichenfolge abzurufen

Wenn Sie Ihre Technik lebendig halten möchten, ist die wirkungsvollste Methode, sie durch kontinuierliche Zufuhr mit ausreichend Nährstoffen zu versorgen. Dabei müssen wir nicht gezielt fortgeschrittene oder neue Erkenntnisse anstreben. Auch eine umfassende und mehrdimensionale Analyse eines Grundproblems kann viel bringen.

Thema

Angenommen, es gibt eine solche Frage: Bitte suchen Sie das Zeichen mit den meisten Wiederholungen und die Anzahl seiner Wiederholungen in der Zeichenfolge „bianchengsanmei,xuexiyouqudezhishi,jieshiyouqudepengyou,suzaoyouqudelinghun“.

Lassen Sie uns dieses Problem heute lösen.

analysieren

Die Lösung für diese Art von Problem ist relativ offen und die Implementierungsmethoden können unterschiedlich sein. Der Unterschied liegt in der hohen oder niedrigen Laufleistung des Codes (unterschiedliche Zeitkomplexität und Raumkomplexität).

Hierbei ist lediglich zu beachten, dass die maximale Häufigkeit auch mehrfach vorkommen kann.

Gebrauchsgegenstände

Lösung:

  • Durchlaufen Sie die Zeichenfolge, wobei Sie jedes Zeichen als Schlüssel und die Anzahl der Wiederholungen als Wert verwenden, und speichern Sie sie in einem Objekt.
  • Durchlaufen Sie das Objekt und erhalten Sie den Maximalwert.
  • Durchlaufen Sie das Objekt und holen Sie sich den entsprechenden Zeichenschlüssel basierend auf dem erhaltenen Maximalwert.
  • Geben Sie das Ergebnis aus.

Der Code wird wie folgt implementiert:

const testStr = "bianchengsanmei,xuexiyouqudezhishi,jieshiyouqudepengyou,suzaoyouqudelinghun.ii";

// Holen Sie sich das Mapping-Objekt jedes Zeichens und seine Wiederholungsnummer let wordsObj = {};
für (let index = 0; index < testStr.length; index++) {
    const Wort = Teststr [Index];
    Wort in wordsObj? wordsObj[Wort]++ : wordsObj[Wort] = 1;
}

// Maximale Anzahl Wiederholungen abrufen let maxNum = 0;
für (const word in wordsObj) {
    const num = WörterObj[Wort];
    wenn (Zahl >= maxZahl) {
        maxNum = Zahl;
    }
}

// Holen Sie sich das Zeichen, das der maximalen Anzahl von Wiederholungen entspricht, und geben Sie das Ergebnis für (const word in wordsObj) { aus.
    const num = WörterObj[Wort];
    wenn (Zahl === maxZahl) {
        console.log(`Das Zeichen mit den meisten Wiederholungen ist: ${ word }, die Anzahl der Wiederholungen ist: ${ maxNum }`)
    }
}

// Das am häufigsten vorkommende Zeichen ist: i, und die Anzahl der Vorkommen beträgt: 10
// Das am häufigsten vorkommende Zeichen ist: u, und die Anzahl der Vorkommen beträgt: 10

analysieren:

  • Dies dürfte für viele die Lösung sein, die ihnen als erstes einfällt und die dem Gedanken der „prozessorientierten“ Programmierung entspricht.
  • Insgesamt gibt es drei Schleifen und viel Raum für Optimierung.

Arrays und Zeiger

Lösung:

  • Wandeln Sie die Zeichenfolge in ein Array um und sortieren Sie sie so, dass wiederholte Zeichen gruppiert werden.
  • Verwenden Sie die Zeigeridee, um die maximale Anzahl an Wiederholungen und das entsprechende Zeichenarray zu erhalten.
  • Geben Sie das Ergebnis aus.

Der Code wird wie folgt implementiert:

const testStr = "bianchengsanmei,xuexiyouqudezhishi,jieshiyouqudepengyou,suzaoyouqudelinghun.ii";

//Konvertiere den String in ein Array und sortiere ihn const testStrArr = testStr.split("").sort();
lass startIndex = 0;
lass endIndex = 1;
sei maxNum = 0;
Lassen Sie valide Wörter = [];

//Verwende die Zeigermethode, um die maximale Anzahl an Wiederholungen und das der maximalen Anzahl entsprechende Zeichenarray abzurufen while (startIndex < testStrArr.length) {
    // Die Zeichen bei startIndex und endIndex sind unterschiedlich if (testStrArr[startIndex] !== testStrArr[endIndex]) {
        // Anzahl der Zeichen zwischen startIndex und endIndex berechnen const rangeNum = endIndex - startIndex;
        wenn (Bereichsnummer > Max.Nummer) {
            maxNum = Bereichsnummer;
            // Wenn eine neue maximale Anzahl auftritt, weisen Sie das Array, das die qualifizierten Zeichen speichert, neu zu validWords = [testStrArr[startIndex]];
        } sonst wenn (Bereichsnummer === max.Nummer) {
            // Wenn die neue Zahl gleich der maximalen Zahl ist, schiebe das Zeichen in das Zeichen-Array validWords.push(testStrArr[startIndex]);
        }
        StartIndex = EndIndex;
    }
    EndeIndex++;
}

// Ergebnisse drucken für (let index = 0; index < validWords.length; index++) {
    const word = gültige Wörter[index];
    console.log(`Am häufigsten wiederholt wird: ${ word }, die Anzahl der Wiederholungen beträgt: ${ maxNum }`)
}

analysieren:

Die Schwierigkeit und das Wesentliche dieser Methode liegen in der Verwendung der Zeigermethode, die es uns ermöglicht, das gewünschte Ergebnis in einem Zyklus zu erhalten.

Zusammenfassen

Dies sind wahrscheinlich die beiden gängigsten Ideen zur Lösung von Problemen, und viele andere Lösungen können als Variationen dieser beiden Ideen angesehen werden.

Egal wie sich die Dinge ändern, das Wesentliche bleibt dasselbe. Solange Sie eine klare Vorstellung davon haben, wie das Problem gelöst werden kann, ist die Codeimplementierung nur ein Ergebnis. Bei unserer täglichen Arbeit und beim Lernen müssen wir bewusst unser divergentes Denken kultivieren und Probleme aus verschiedenen Blickwinkeln betrachten. Möglicherweise entdecken Sie unterschiedliche Szenarien!

Dies ist das Ende dieses Artikels zur Verwendung von JavaScript zum Abrufen der am häufigsten wiederholten Zeichen in einer Zeichenfolge. Weitere relevante JS-Inhalte zum Abrufen der am häufigsten wiederholten Zeichen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie reguläre Ausdrücke in JS, um wiederholte Zeichen in einer Zeichenfolge zu entfernen
  • JS-Methode zum Löschen wiederholter Zeichen in einer Zeichenfolge
  • Beispiele zum Entfernen aufeinanderfolgender oder aller wiederholten Zeichen aus einer JS-Zeichenfolge
  • JS-Methode zum Entfernen doppelter Werte in einer Zeichenfolge
  • So entfernen Sie doppelte Zeichen aus einer JavaScript-Zeichenfolge
  • JS löscht doppelte Elemente im String-Array
  • Detaillierte Erklärung zum Entfernen doppelter Werte in JavaScript-Arrays und -Strings
  • JavaScript implementiert die Suche nach dem ersten nicht wiederholten Zeichen in einer Zeichenfolge
  • JS implementiert eine Methode zum Auffinden doppelter Zeilen für eine sortierte Zeichenfolge

<<:  Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

>>:  Verstehen von MySQL-Deadlock-Routinen durch eindeutige Index-S-Sperre und X-Sperre

Artikel empfehlen

So ändern Sie die Ubuntu-Quellliste (Quellliste) - detaillierte Erklärung

Einführung Die Standardquelle von Ubuntu ist kein...

Tutorial zur HTML-Tabellenauszeichnung (10): Zell-Padding-Attribut CELLPADDING

Unter Zellenabstand versteht man den Abstand zwis...

Detaillierte Erläuterung des Apache SkyWalking-Alarmkonfigurationshandbuchs

Apache SkyWalking Apache SkyWalking ist ein Tool ...

Vue+Openlayer verwendet modify, um den gesamten Code des Elements zu ändern

Vue+Openlayer verwendet „modify“, um Elemente zu ...

Probleme und Lösungen bei der Installation und Verwendung von VMware

Die virtuelle Maschine wird verwendet oder es kan...

Verstehen Sie die anfängliche Verwendung von Redux in React in einem Artikel

Redux ist ein Plug-In zur Datenstatusverwaltung. ...

Detaillierte Analyse von Absturzfällen bei MySQL-Instanzen

[Problembeschreibung] Unsere Produktionsumgebung ...