새소식

프론트엔드 공부/자료구조 & 알고리즘

문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다.

  • -

isIsogram

문제

문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다.

입력

인자 1 : str

  • string 타입의 공백이 없는 알파벳 문자열

출력

  • boolean 타입을 리턴해야 합니다.

주의 사항

  • 빈 문자열을 입력받은 경우, true를 리턴해야 합니다.
  • 대소문자는 구별하지 않습니다.

입출력 예시

let output = isIsogram('aba');
console.log(output); // false

output = isIsogram('Dermatoglyphics');
console.log(output); // true

output = isIsogram('moOse');
console.log(output); // false

코드

// 작성코드
function isIsogram(str) {
  let newStr = str.toLowerCase();
  if (str.length === 0) return true;
  for (let i = 0; i < newStr.length; i++) {
    if (newStr.indexOf(newStr[i], i + 1) !== -1) {
      return false;
    }
  }
  return true;
}

// 작성코드2
function isIsogram(str) {
 let newStr = str.toLowerCase();
    let result = true;
 
  if(str.length === 0){
    return result;
  }
 
  for(let i = 0; i<newStr.length; i++){
    for (let j = i+1; j < newStr.length; j++){
      if (newStr[i]===newStr[j]){
        result =  false;      
      } 
    }
  }
  return result;
}

// 레퍼런스
function isIsogram(str) {
  if (str.length === 0) {
    return true;
  }

  let cache = {};
  let strLowered = str.toLowerCase();

  for (let i = 0; i < strLowered.length; i++) {
    if (cache[strLowered[i]]) {
      return false;
    }
    cache[strLowered[i]] = true;
  }

  return true;
}
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.