Salam.
Saya menyiarkan cabaran Codewars dan proses pemikiran saya dalam siri ini. Saya menggunakan JS dan Node 18 apabila boleh. Hanya demi kejelasan, saya menggunakan mereka secara adil.
Ok, ini berair. Pada dasarnya, anda perlu mengalih keluar pendua dalam rentetan, susun apa yang tinggal dan sertai dua rentetan. Tidak betul-betul dalam susunan itu. Sebenarnya, saya melakukannya dengan cara yang bertentangan. Dan saya juga membina fungsi utiliti untuk langkah yang sangat khusus (mengalih keluar pendua).
Pertama, gabungkan dua rentetan. Mudah:
let longest = s1 + s2;
Kedua, belah huruf:
let array = new Array(s1.length + s2.length); for (let i = 0 ; i < s1.length + s2.length ; i++ ){ array[i] = longest[i]; }
Ketiga, susun huruf:
array = array.sort((a, b) => a.localeCompare(b)); // (a, b) => a.localeCompare(b) THIS IS REDUNDANT, but I leave it as a reminder
Keempat, alih keluar pendua:
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; }
Kelima, bersihkan:
array = array.join("");
Terakhir, letakkan setiap kepingan teka-teki bersama:
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; }
Ia pastinya TIDAK berprestasi. Saya tidak suka gelung kedua itu. Dan ia juga tidak begitu bersih. Suatu hari nanti saya perlu melawat semula yang ini.
Selamatlah. Minum air ???.
Sebelumnya
Atas ialah kandungan terperinci Codewars - Dua kepada Satu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!