Mảng chuỗi được sắp xếp theo độ dài tăng dần. Mảng là progressive nếu mỗi chuỗi sau được tạo bằng cách thêm 1 ký tự vào đầu HOẶC cuối chuỗi trước.
Ví dụ
Mảng: ["c", "ca", "can", "acan", "acane", "dacane"]
c → ca (thêm 'a' cuối) → can (thêm 'n' cuối) → acan (thêm 'a' đầu) → acane (thêm 'e' cuối) → dacane (thêm 'd' đầu) → true
Giải pháp
Mã triển khai:
const arr = ["c", "ca", "can", "acan", "acane", "dacane"];
const isProgressive = arr => {
for (let i = 0; i < arr.length - 1; i++) {
const next = arr[i+1];
const prev = arr[i];
const len = next.length;
// Kiểm tra next = prev + ký tự cuối HOẶC ký tự đầu + prev
if (next === prev + next[len-1] || next === next[0] + prev) continue;
return false;
}
return true;
};
console.log(isProgressive(arr));
Kết quả
Đầu ra trong console:
true