Anreden.
Ich poste in dieser Serie Codewars-Herausforderungen und meinen Denkprozess. Ich verwende wann immer möglich JS und Node 18. Nur der Klarheit halber nutze ich sie fair.
Für die Herausforderung „Duplikate zählen“ beginne ich damit:
function duplicateCount(text){ text = text.toString(); let countTotal = {"max":0}; let letter = ''; for (let i=0 ; i < text.length ; i++){ letter = text.at(i).toLowerCase(); if (letter){ countTotal[letter] = countTotal[letter] ? countTotal[letter]++ : 1; if (countTotal[letter] > countTotal["max"]){ countTotal["max"] = countTotal[letter]; } } } return countTotal["max"]; }
Scheint... wortreich. Ich frage mich, ob diese vielen Worte tatsächlich in die richtige Richtung zielen. Ich gebe Ihnen etwas Zeit, wenn Sie selbst nachdenken möchten.
3...
2...
1...
1/2...
1/4...
Ok, ich denke, das reicht. Nein. Der Slang aus der Bay Area hat seinen Weg ins Internet gefunden, also wenn ich darf: Es ist verdammt falsch.
Die Sache ist die, ich habe versucht herauszufinden, wie viele Duplikate des am häufigsten duplizierten Buchstabens vorhanden sind. Es stellt sich heraus, dass wir beantworten müssen, wie viele doppelte Typen es gibt. Groß- und Kleinschreibung wird nicht beachtet.
AbC -> 0 -> kein Buchstabe wiederholt sich
AbCC -> 1 -> „C“ wiederholt sich, egal wie oft
AbBCC -> 2 -> „b“ und „c“ wiederholen sich, egal wie oft oder in welcher Schreibweise
Wir können Objektliterale in JS nutzen, um für jeden Buchstaben einen Zähler zu erstellen. Dann könnte eine Eigenschaft „Wiederholungen“ sein, was ein Zähler wäre, der NUR dann hochgeht, wenn ein Buchstabe zweimal vorkommt.
if (countTotal[letter]==2){ countTotal.repetitions++; }
Vollständige Lösung:
function duplicateCount(text){ text = text.toString(); let countTotal = {"repetitions": 0}; let letter = ''; for (let i=0 ; i < text.length ; i++){ letter = text.at(i).toLowerCase(); if (letter){ (countTotal[letter] === undefined) ? countTotal[letter] = 0 : null; countTotal[letter]++; if (countTotal[letter]==2){ countTotal.repetitions++; } } } return countTotal["repetitions"]; }
Hat eine Weile gedauert, es kann verbessert werden.
Pass auf dich auf. Wasser trinken???.
Zurück
Das obige ist der detaillierte Inhalt vonCodewars – Duplikate zählen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!