First non-repeating character ( 5 kyu )
문제
Write a function named firstNonRepeatingLetter† that takes a string input, and returns the first character that is not repeated anywhere in the string.
For example, if given the input ‘stress’, the function should return ‘t’, since the letter t only occurs once in the string, and occurs first in the string.
As an added challenge, upper- and lowercase letters are considered the same character, but the function should return the correct case for the initial letter. For example, the input ‘sTreSS’ should return ‘T’.
If a string contains all repeating characters, it should return the empty string (“”).
문자열중에 중복되지 않는 첫번째 알파벳을 리턴하는 문제,
대소문자를 구별하지 않음
풀이
function firstNonRepeatingLetter(s) {
let low = s.toLowerCase();
for ( let i = 0; i < s.length; i++ ) {
if ( low.indexOf(low[i]) === low.lastIndexOf(low[i]) ) {
return s[i]
}
}
return '';
}
문자열을 소문자로 바꾼 뒤에 포문을 돌며 indexOf와 lastIndexOf를 비교해 둘의 인덱스가 같다면 해당 문자를 리턴
다른 사람의 풀이
function firstNonRepeatingLetter(s) {
for(var i in s) {
if(s.match(new RegExp(s[i],"gi")).length === 1) {
return s[i];
}
}
return '';
}
대소문자를 구별하지 않는 문제에서는 정규식을 사용할 줄 알면 좋을 것 같다.