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