isIsogram
문제
문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다.
입력
인자 1 : str
- string 타입의 공백이 없는 알파벳 문자열
출력
주의 사항
- 빈 문자열을 입력받은 경우, 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;
}