สมมติว่าเรามีจำนวนเต็มที่ไม่ติดลบที่เรียกว่า num เราต้องตรวจสอบว่าเป็นพาลินโดรมหรือไม่ แต่ไม่ใช้สตริง
ดังนั้น หากอินพุตเป็น 1331 ผลลัพธ์จะเป็นจริง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ยกเลิก :=0
-
x :=นัม
-
ในขณะที่ num> 0, ทำ -
-
d :=num mod 10
-
ret :=ret * 10
-
ret :=ret + d
-
นัม :=นัม / 10
-
-
คืนค่า จริง เมื่อ x เท่ากับ ret
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
#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