Computer >> Máy Tính >  >> Lập trình >> Javascript

Chuỗi có thể được phân đoạn trong JavaScript không

Chúng ta được cung cấp một chuỗi str không rỗng và một mảng chuỗi arr chứa danh sách các từ không rỗng.

Chúng tôi bắt buộc phải viết một hàm để xác định xem str có thể được phân đoạn thành một chuỗi được phân tách bằng dấu cách của một hoặc nhiều từ tồn tại trong mảng hay không.

Lưu ý

  • Cùng một từ trong mảng có thể được sử dụng lại nhiều lần trong phân đoạn.

  • Mảng không chứa các từ trùng lặp.

Ví dụ 1

Nếu đầu vào là

const str = "applepenapple";
const arr = ["apple", "pen"];

Đầu ra phải đúng, bởi vì

"applepenapple" can be segmented as "apple pen apple".

Ví dụ

Mã cho điều này sẽ là -

const str = "applepenapple";
const arr = ["apple", "pen"];
const wordSequence = (str = '', arr = []) => {
   const map = {}
   function helper(str) {
      if (map.hasOwnProperty(str)) {
         return map[str]
      } else if (str=='') {
         return true
      }
      for (let i=0;i<=str.length;i++) {
         if (
            arr.includes(str.slice(i)) &&
            helper(str.slice(0, i))
         ){
            map[str] = true
            return true
         }
      };
      map[str] = false;
      return false;
   };
   return helper(str)
};
console.log(wordSequence(str, arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true