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 diese nächste Übung haben wir eine geordnete, aufsteigende Reihe von Buchstaben, aber irgendwo in der Mitte fehlt ein Buchstabe:
['a','b','c','d','f']
['O','Q','R','S']
Zuerst müssen wir wissen, dass Buchstaben in Unicode einen entsprechenden numerischen Wert haben. Daher benötigen wir Funktionen, die Buchstaben in Zahlen umwandeln können und umgekehrt.
Lassen Sie uns einige JS-Funktionen ausprobieren, um zu sehen, was sie tun:
function findMissingLetter(array) { return [array[3].charCodeAt(),array[4].charCodeAt()]; } // the array is ['a','b','c','d','f'] // it expects 'e' // this function returns [ 100, 102 ]
Wir haben unser erstes wichtiges Puzzleteil. Jetzt müssen wir eine Lösung dafür schaffen. Dazu könnten wir etwas verwenden, um das Array zu durchqueren und nach der Anomalie zu suchen:
let counter = 0; while (array[counter].charCodeAt() + 1 == array[counter + 1].charCodeAt() && counter < array.length) { counter++; }
Dann müssen wir den tatsächlich fehlenden Buchstaben finden:
let letter = String.fromCharCode(array[counter].charCodeAt() + 1)
Alles zusammenbauen:
function findMissingLetter(array) { let counter = 0; while (array[counter].charCodeAt() + 1 == array[counter + 1].charCodeAt() && counter < array.length) { counter++; } let letter = String.fromCharCode(array[counter].charCodeAt() + 1) return letter; }
Überraschend lesbar. Ich denke, es ist in Ordnung. Es muss eine Möglichkeit geben, es zu optimieren, aber ich weiß noch nicht, wie.
Pass auf dich auf. Wasser trinken???.
Zurück
Das obige ist der detaillierte Inhalt vonCodewars – Finden Sie den fehlenden Buchstaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!