728x90
반응형
주어진 문자열에서 첫 번째로 등장하는 반복되지 않는 문자를 찾는 것입니다. 즉, 문자열에서 한 번만 등장하는 문자를 찾아야 합니다. 만약 이러한 문자가 없다면 '_'를 반환해야 합니다.
예를 들어, 문자열 "abacabad"에서는 'c'와 'd'가 두 번 등장하지 않으므로 두 문자 중 첫 번째로 등장하는 'c'를 반환해야 합니다.
문제의 구체적인 설명은 다음과 같습니다:
- 주어진 문자열 s는 소문자 영어 알파벳으로만 구성됩니다.
- 문자열의 길이는 1에서 10^5 사이입니다.
- 첫 번째로 등장하는 반복되지 않는 문자를 찾아 반환합니다. 만약 이러한 문자가 없다면 '_'를 반환합니다.
char solution(string s) {
Dictionary<char,int> dic = new Dictionary<char, int>();
foreach(char c in s){
if(dic.ContainsKey(c)){
dic[c]++;
}
else{
dic[c] = 1;
}
}
foreach(char c in s){
if(dic[c] == 1) return c;
}
return '_';
}
charCount라는 Dictionary는 각 문자와 해당 문자의 등장 횟수를 저장하기 위한 자료구조입니다.
문자열 s를 순회하면서 각 문자의 등장 횟수를 charCount에 저장합니다.
만약 현재 문자 c가 이미 charCount에 존재한다면 해당 문자의 등장 횟수를 증가시킵니다. 그렇지 않으면 등장 횟수를 1로 설정합니다.
이제 문자열을 다시 순회하면서 등장 횟수가 1인 첫 번째 문자를 찾습니다.
등장 횟수가 1인 문자를 찾으면 해당 문자를 반환하고 메서드를 종료합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
sudoku2 (2) | 2024.03.06 |
---|---|
rotateImage (1) | 2024.02.28 |
Count Sum of Two Representations 2 (1) | 2024.02.26 |
Kill K-th Bit (0) | 2024.02.22 |
Tennis Set (0) | 2024.02.20 |