[문제]
“isogram”은 동일한 문자가 없는 단어를 말한다.
오직 문자만을 포함하는 문자열이 “isogram” 인지 아닌지를 결정하는 프로그램을 작성하라.
단, 대/문자는 무시하고, 빈 문자열(empty string)은 “isogram”이다.
function isIsogram(str){
// your code
}
[예제]
isIsogram( "Dermatoglyphics" ) == true
isIsogram( "aba" ) == false
isIsogram( "moOse" ) == false // -- ignore letter case
[알고리즘]
* 빈 문자열이면, true를 리턴하라.
* 빈 문자열이 아니라면, for문을 돌려, 인풋 str의 각 문자를 소문자로 만든다.(대/소문자가 같은 것이기 때문에, 모든 문자를 소문자로 통일한다.)
* 빈 배열을 선언하고, for문에서의 각 문자가 배열에 포함되어 있지 않으면, 배열에 추가시킨다.
* for문후에, 배열 요소의 수와 인풋 str의 문자의 수가 같으면, true를 리턴하라.(수가 같다는 것은 인풋 str안에 동일한 문자가 없다는 것을 의미한다.)
* 그렇지 않으면, false를 리턴하라.
[Solution]
function isIsogram(str){
var arr = [];
if(str === "") {
return true;
} else {
for(var i = 0; i < str.length; i++) {
var letter = str.charAt(i).toLowerCase();
if(!arr.includes(letter)) {
arr.push(letter);
}
}
}
if(arr.length === str.length) {
return true;
} else {
return false;
}
}