[LeetCode] 1961. Check If String Is a Prefix of Array

Chobby·2일 전
1

LeetCode

목록 보기
638/652

😎풀이

  1. 각 단어 길이 확인
  2. 단어 길이의 총합 확인
  3. s의 길이가 전체 문자words의 길이보다 길면 Prefix일 수 없음
  4. swords의 각 단어 길이에 맞게 분할
  5. 동등비교 후 다르다면 false 반환
  6. s와 접두사가 모두 일치한다면 true 반환
function isPrefixString(s: string, words: string[]): boolean {
    const wordLen = words.map(a => a.length)
    const wordLenSum = wordLen.reduce((acc, cur) => acc + cur, 0)
    if(wordLenSum < s.length) return false
    const splitS = []
    let prevIdx = 0
    for(let i = 0; i < wordLen.length; i++) {
        const curLen = wordLen[i]
        const curIdx = prevIdx + curLen
        const curWord = s.slice(prevIdx, curIdx)
        prevIdx = curIdx
        if(curWord) splitS.push(curWord)
    }
    for(let i = 0; i < splitS.length; i++) {
        if(splitS[i] !== words[i]) return false
    }
    return true
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글