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