심심해서 오랜만에 c++로 leetcode 문제를 풀어봤다.
1417 Reformat the string 이라는 문제다.
쉬운 문제라 휘리릭 풀 수 있다.
역시나 PS는 한동안 안하면 다시 시작할때 꽤나 하기가 싫은 경향이 있긴 하다.
class Solution {
public:
string reformat(string s) {
vector<char> digits;
vector<char> chars;
vector<char> result;
digits.reserve(s.length());
chars.reserve(s.length());
result.reserve(s.length());
for(char c: s) {
if(isdigit(c)) {
digits.push_back(c);
}else {
chars.push_back(c);
}
}
int digit_count = digits.size();
int char_count = chars.size();
if(abs(digit_count - char_count) >= 2) {
return "";
}
int d_size = digits.size();
int c_size = chars.size();
vector<char>& larger = digits.size() > chars.size() ? digits : chars;
vector<char>& smaller = digits.size() > chars.size() ? chars: digits;
for(size_t i = 0; i < larger.size(); i++) {
result.push_back(larger.at(i));
if(!smaller.empty() && i <= (smaller.size() - 1)) {
result.push_back(smaller[i]);
}
}
return string(result.begin(), result.end()); ;
}
};
반응형
'Algorithm > 문제풀이' 카테고리의 다른 글
[leetcode] 3079. Find the Sum of Encrypted Integers - Rust (0) | 2024.05.03 |
---|---|
[leetcode] 2451. Odd String Difference - Rust (0) | 2024.05.03 |
[BOJ] 백준 16939 - 2×2×2 큐브 - Java solution (0) | 2022.11.11 |
[BOJ] 백준 2529 부등호 - Java 풀이 (0) | 2022.10.12 |
[BOJ] 백준 16953 A → B - Python3 풀이 (0) | 2022.09.16 |