Salutations.
Je publie les défis Codewars et mon processus de réflexion dans cette série. J'utilise JS et Node 18 autant que possible. Par souci de clarté, j'en fais un usage équitable.
Pour le défi "Compter les doublons", je vais commencer par ceci :
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"]; }
Ça semble... verbeux. Je me demande si autant de mots visent réellement la bonne direction. Je te laisse un peu de temps si tu veux réfléchir par toi-même.
3...
2...
1...
1/2...
1/4...
Ok, je pense que ça suffit. Non. L'argot de la Bay Area a fait son chemin sur le Web, donc si je peux me permettre : c'est bonjour faux.
Le fait est que j'essayais de trouver combien de doublons de la lettre la plus dupliquée y a-t-il. Il s'avère que nous devons répondre au nombre de types en double. Insensible à la casse.
AbC -> 0 -> aucune lettre ne se répète
AbCC -> 1 -> "C" se répète, on s'en fiche combien de fois
AbBCC -> 2 -> "b" et "c" répètent, on s'en fout du nombre de fois ou du boîtier
Nous pouvons profiter des littéraux d'objet en JS pour créer un compteur pour chaque lettre. Ensuite, une propriété pourrait être les « répétitions », ce qui serait un compteur qui augmente UNIQUEMENT chaque fois qu'une lettre apparaît deux fois.
if (countTotal[letter]==2){ countTotal.repetitions++; }
Solution complète :
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"]; }
Cela a pris du temps, cela peut être amélioré.
Prends soin de toi. Boire de l'eau ???.
Précédent
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!