Дано целое число x.
Нужно вернуть true, если x является палиндромом, и false в противном случае.
Палиндром – это число, которое одинаково читается в прямом и обратном направлении.
Входные данные: x = 121
Результат: true
Пояснение: 121 читается как 121 слева направо и справа налево.
Входные данные: x = -121
Результат: false
Пояснение: Не палиндром, потому что слева направо написано -121, а справа налево это становится 121-.
Входные данные: x = 10
Результат: false
Пояснение: Справа налево читается 01. Следовательно, это не палиндром.
class Solution {
public:
bool isPalindrome(int x) {
stack<int> st;
if(x<0) {
return false;
}
int y = x;
// цифры x направляются в стек
while(x) {
st.push(x%10);
x /= 10;
}
// цифры извлекаются из стека и сравниваются с цифрами числа
while(y) {
if(st.top() != (y%10)) {
return false;
}
st.pop();
y /= 10;
}
return true;
}
};