Heim >Web-Frontend >js-Tutorial >Codewars – Zwei zu Eins
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.
Ok, das war saftig. Im Wesentlichen müssen Sie Duplikate in einer Zeichenfolge entfernen, den Rest ordnen und zwei Zeichenfolgen verbinden. Nicht genau in dieser Reihenfolge. Eigentlich habe ich es genau umgekehrt gemacht. Und ich habe auch eine Hilfsfunktion für einen ganz bestimmten Schritt (Entfernen von Duplikaten) erstellt.
Verketten Sie zunächst zwei Zeichenfolgen. Ganz einfach:
let longest = s1 + s2;
Zweitens teilen Sie die Buchstaben auf:
let array = new Array(s1.length + s2.length); for (let i = 0 ; i < s1.length + s2.length ; i++ ){ array[i] = longest[i]; }
Drittens sortieren Sie die Buchstaben:
array = array.sort((a, b) => a.localeCompare(b)); // (a, b) => a.localeCompare(b) THIS IS REDUNDANT, but I leave it as a reminder
Viertens: Duplikate entfernen:
function keepFirstLetter(array){ let arrayFixed = new Array(array.length); let counter = 0; arrayFixed[0] = array[0]; for (let i = 0 ; i < array.length ; i++ ){ if (arrayFixed[counter] != array[i]){ counter++; arrayFixed[counter] = array[i]; } } return arrayFixed; }
Fünftens: Aufräumen:
array = array.join("");
Zuletzt fügen Sie alle Puzzleteile zusammen:
function longest(s1, s2) { let array = new Array(s1.length + s2.length); let longest = s1 + s2; for (let i = 0 ; i < s1.length + s2.length ; i++ ){ array[i] = longest[i]; } array = array.sort((a, b) => a.localeCompare(b)); array = keepFirstLetter(array); array = array.join("") return array; } function keepFirstLetter(array){ let arrayFixed = new Array(array.length); let counter = 0; arrayFixed[0] = array[0]; for (let i = 0 ; i < array.length ; i++ ){ if (arrayFixed[counter] != array[i]){ counter++; arrayFixed[counter] = array[i]; } } return arrayFixed; }
Es ist definitiv NICHT performant. Ich mag diese zweite Schleife nicht. Und es ist auch nicht so sauber. Eines Tages muss ich mir das noch einmal ansehen.
Alles gut. Wasser trinken???.
Zurück
Das obige ist der detaillierte Inhalt vonCodewars – Zwei zu Eins. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!