একটি নন-নেগেটিভ পূর্ণসংখ্যা দেওয়া আছে। স্ট্রিং-এ কনভার্ট না করে এটি প্যালিনড্রোম কিনা তা যাচাই করুন।
উদাহরণ
ইনপুট: 1331
আউটপুট: true (1)
অ্যালগরিদম
ret = 0,x = numরাখুন।while (num > 0):d = num % 10(শেষ অঙ্ক)ret = ret * 10 + d(রিভার্স তৈরি)num /= 10
x == retহলে প্যালিনড্রোম।
C++ বাস্তবায়ন
#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);
return 0;
}
দ্রষ্টব্য
- নেগেটিভ সংখ্যার জন্য false (কারণ '-' চিহ্ন থাকে)
- ওভারফ্লো এড়াতে
long longব্যবহার করা ভালো - সময় জটিলতা: O(log₁₀ n)