Cho số nguyên không âm num. Kiểm tra xem nó có phải số đối xứng (palindrome) hay không, không dùng chuỗi.
Ví dụ: 1331 → true.
Giải thuật: Đảo ngược số bằng phép chia lấy dư và so sánh với số gốc.
ret = 0,x = num.- Khi
num > 0:d = num % 10,ret = ret * 10 + d,num /= 10. - Trả về
x == ret.
Ví dụ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool solve(int num) {
int ret = 0, x = num;
while (num > 0) {
int d = num % 10;
ret = ret * 10 + d;
num /= 10;
}
return x == ret;
}
};
int main() {
Solution ob;
cout << (ob.solve(1331));
}
Đầu vào
1331
Đầu ra
1