-
7. Reverse Integer - no solution릿코드(LEETCODE) 2020. 2. 9. 11:43반응형
https://leetcode.com/problems/reverse-integer/
signed int n 을 리버스 하는 문제다.
reverse 했을때 int 유효범위가 넘어갈때 처리하는 방법이 키포인트인데 방법을 아직 못찾았다.
기록용으로 남겨 두자 나중에 풀자.
INT 유효범위 체크를 안한 틀린 코드
#include <algorithm> class Solution { public: int reverse(int x) { bool minus = false; if(x < 0) { minus = true; } x = abs(x); while(x) { int cand = x % 10; if(cand != 0) break; x = x / 10; } string s = to_string(x); std::reverse(s.begin(), s.end()); long long sol = atol(s.c_str()); if(minus) { sol *= -1; } return sol; } };
INT 유효범위 추가한 코드
reverse 후 자료표현범위 체크 추가
#include <algorithm> class Solution { public: int reverse(int x) { bool minus = true; std::string s = std::to_string(x); if(s[0] == '-') { minus = false; s = s.substr(1, s.size()-1); } std::reverse(s.begin(), s.end()); long num = atol(s.c_str()); num = minus ? num : -num; if (num > std::numeric_limits<int>::max() || num < std::numeric_limits<int>::min()) { return 0; } return num; } };
반응형'릿코드(LEETCODE)' 카테고리의 다른 글
896. Monotonic Array (0) 2020.02.10 412. Fizz Buzz (0) 2020.02.09 190. Reverse Bits (0) 2020.02.09 191. Number of 1 Bits (0) 2020.02.09 231. Power of Two (1) 2020.02.08