Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

สามารถแบ่งสตริงใน JavaScript


เราได้รับ str สตริงที่ไม่ว่างเปล่าและอาร์เรย์ของสตริง arr ที่มีรายการคำที่ไม่ว่างเปล่า

เราจำเป็นต้องเขียนฟังก์ชันที่กำหนดว่า str สามารถแบ่งกลุ่มเป็นลำดับที่คั่นด้วยช่องว่างของคำตั้งแต่หนึ่งคำขึ้นไปในอาร์เรย์ได้หรือไม่

หมายเหตุ

  • คำเดียวกันในอาร์เรย์อาจถูกนำมาใช้ซ้ำหลายครั้งในการแบ่งกลุ่ม

  • อาร์เรย์ไม่มีคำซ้ำกัน

ตัวอย่างที่ 1

หากอินพุตเป็น

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

ผลลัพธ์ควรเป็นจริงเพราะ

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

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

true