สมมติว่าเรามีจำนวนเต็มที่ไม่ติดลบที่เรียกว่า 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