Heim >Web-Frontend >js-Tutorial >Codewars – Duplikate zählen

Codewars – Duplikate zählen

Susan Sarandon
Susan SarandonOriginal
2025-01-04 19:21:41351Durchsuche

Anreden.

Codewars - Counting Duplicates

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn