[leetcode, JS] 1704. Determine if String Halves Are Alike

mxxn·2023년 11월 3일
0

leetcode

목록 보기
112/198

문제

문제 링크 : Determine if String Halves Are Alike

풀이

/**
 * @param {string} s
 * @return {boolean}
 */
var halvesAreAlike = function(s) {
    const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
    const a = s.slice(0,s.length/2)
    const b = s.slice(s.length/2)
    let cntA = 0
    let cntB = 0
    for(let i=0; i<s.length/2; i++) {
        if(vowels.includes(a[i])) cntA++
        if(vowels.includes(b[i])) cntB++
    }

    return cntA === cntB
};
  1. 문자열 s를 반으로 나눠 각각의 모음의 개수가 일치하는지 확인
  • Runtime 54ms, Memory 42.77MB

다른 풀이

/**
 * @param {string} s
 * @return {boolean}
 */
var halvesAreAlike = function(s) {
    const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
    let ct=0;
    const n=s.length;

    for(let i=0;i<n;i++){
        if(vowels.includes(s[i])){
            if(i < n/2)
                ct++;
            else
                ct--;
        }
    }
    return ct === 0;
};
  1. 같은 방식인데 좀 더 효율적인 풀이
  • Runtime 39ms, Memory 42.17MB
profile
내일도 글쓰기

0개의 댓글