반응형
https://leetcode.com/problems/second-largest-digit-in-a-string/description/
set을 사용해본 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
digit이 나온 문자들을 저장할 set numSet을 선언한 후 s에 대해 for loop를 수행하며 문자별 digit들을 저장해줍니다.
📔 정답 출력 | 반환
1. digit이 1개밖에 없다면 정답은 -1입니다
2. set 자료구조는 오름차순으로 정렬되며 원소가 insert되므로 rbegin에서 iterator를 하나 증가시켜준 주소값을 반환해줍니다.
📕 Code
📔 C++
class Solution {
public:
int secondHighest(string s) {
set <int> numSet;
for(auto c : s) {
if(isdigit(c)) {
numSet.insert(c-'0');
}
}
if (numSet.size() < 2) {
return -1;
}
auto it = numSet.rbegin();
it++;
return *it;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.