LeetCode 140. Word Break II (자바스크립트 솔루션)
4154 단어 algorithmsjavascript
설명:
문자열 s와 문자열 wordDict의 사전이 주어지면 s에 공백을 추가하여 각 단어가 유효한 사전 단어인 문장을 구성합니다. 가능한 모든 문장을 임의의 순서로 반환하십시오.
사전에 있는 동일한 단어는 분할에서 여러 번 재사용될 수 있습니다.
해결책:
시간 복잡도 : O(wordDict.length^s.length)
공간 복잡도: O(s.length)
var wordBreak = function(s, wordDict, memo={}) {
// Return already solved for sentance
if(memo[s]!==undefined) return memo[s]
// Base case of yet unsolved sentance
if(s.length===0) return ['']
const output = []
for(const word of wordDict) {
if(s.indexOf(word)===0) {
const suffix = s.slice(word.length)
// All different sentances to make the suffix
const suffixWays = wordBreak(suffix, wordDict, memo)
// Add the word to all the different sentance combinations
const targetWays = suffixWays.map(way => word + (way.length ? ' ' : '') + way)
output.push(...targetWays)
}
}
memo[s] = output
return output
}
Reference
이 문제에 관하여(LeetCode 140. Word Break II (자바스크립트 솔루션)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cod3pineapple/leetcode-140-word-break-ii-javascript-solution-474g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)