Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp lại chuỗi để các ký tự giống nhau cách nhau n khoảng trong JavaScript


Chúng ta cần viết hàm JavaScript nhận vào chuỗi có ký tự lặp lại và số n, trả về chuỗi mới mà các ký tự giống nhau cách nhau đúng n vị trí. Số n phải nhỏ hơn độ dài chuỗi.

Ví dụ: "accessories", n=3 → "secrsecisao" (có thể có hoán vị khác).

Dưới đây là mã:

Ví dụ

const str = 'accessories'; const equalDistance = (str, num) => { const map = str.split("").reduce((acc, val) => { const count = acc.get(val); if(typeof count === 'number'){ acc.set(val, count+1); }else{ acc.set(val, 1); }; return acc; }, new Map()); const arr = Array.from(map).sort((a, b) => b[1] - a[1]); let newString = ''; for(let i = 0, count = 0; i < str.length;){ if(!arr[count][1]){ arr.splice(count, 1); continue; }; newString += arr[count][0]; arr[count][1]--; i++; count = i % num; }; return newString; }; console.log(equalDistance(str, 4)); console.log(equalDistance('abb', 2)); console.log(equalDistance('aacbbc', 3));

Kết quả

Đầu ra trong console sẽ là:

sceasceosri bab acbacb