num이라는 음이 아닌 정수가 있다고 가정하고 회문인지 아닌지 확인해야 하지만 문자열은 사용하지 않습니다.
따라서 입력이 1331과 같으면 출력이 true가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
ret :=0
-
x :=숫자
-
num> 0일 때 −
-
d :=숫자 모드 10
-
렛 :=렛 * 10
-
렛 :=렛 + d
-
숫자 :=숫자 / 10
-
-
x가 ret와 같을 때 true를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
#include <bits/stdc++.h> using namespace std; class Solution { public: bool solve(int num) { int ret = 0; int x = num; while(num > 0){ int d = num % 10; ret *= 10; ret += d; num /= 10; } return x == ret; } }; main() { Solution ob; cout << (ob.solve(1331)); }
입력
1331
출력
1