Viết hàm tách chuỗi thành n chuỗi con cùng độ dài, bằng cách lấy ký tự lần lượt từ đầu và cuối chuỗi gốc.
Ví dụ
Chuỗi: 'how', n = 3
Quá trình: h(đầu), w(cuối), o(giữa) → ['h', 'w', 'o']
Giải pháp
Mã triển khai:
const str = "how";
const num = 3;
const segregate = (str, n) => {
if (str.length % n !== 0) return false;
const len = str.length / n;
const chars = str.split('');
const result = Array(n).fill('');
for (let i = 0; i < chars.length; ) {
for (let j = 0; j < n && i < chars.length; j++) {
result[j] += chars[i++];
}
for (let j = n - 1; j >= 0 && i < chars.length; j--) {
result[j] += chars[i++];
}
}
return result;
};
console.log(segregate(str, num));
Kết quả
Đầu ra trong console:
['h', 'w', 'o']
Giải thích: Code gốc logic hơi phức tạp. Cách trên: xen kẽ điền từ trái sang phải, rồi phải sang trái.