มีสตริงคั่นด้วยจุลภาค (เช่น 'JAY,ROB,APPLE,AAKO') ต้องสร้างคำใหม่โดยนำตัวอักษรแรกของแต่ละคำมาเปรียบเทียบ ตัวอักษรที่น้อยกว่า (ตามลำดับพจนานุกรม) จะถูกนำมาต่อกันจนครบทุกตัวอักษร
ตัวอย่าง: 'JAY,ROB,APPLE,AAKO' → 'AAAJAKOPPLEROBY'
ตัวอย่างโค้ด
const str = `JAY,ROB,APPLE,AAKO`;
const specialSort = (str = '') => {
let len = str.replace(/,/g, "").length;
const sorter = (str, b) => {
if (str === "" || str === null) return 1;
if (b === "" || b === null) return -1;
if (str === b) return 0;
return str < b ? -1 : 1;
};
let res = "";
let sorted = str.split(",").sort(sorter);
while (res.length < len) {
res += sorted[0][0];
sorted[0] = sorted[0].slice(1);
sorted = sorted.sort(sorter);
}
return res;
};
console.log(specialSort(str));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
AAAJAKOPPLEROBY