반응형
문제 링크 : leetcode.com/problems/palindrome-number/
풀이 : 121, 2112같은 수를 찾는 문제. 음수면 -가 붙어 모두 Palindrome Number가 아니고 0이면 맞다.
이제 양수일 경우 string으로 변환하여 처음과 끝을 비교하며 같으면 지워나간다. 틀린다면 false를 반환한다.
size가 1이 되거나 0이 되면 Palindrome Number이므로 true를 반환한다.
이 문제의 심화 버전으로, string으로 변환하지 않고 숫자 그대로 풀이해보라고 리트코드에서 말한다.
Follow up: Could you solve it without converting the integer to a string?
<코드>
class Solution {
public:
bool isPalindrome(int x) {
if(x<0) return false;
else if(x==0) return true;
else{
string tmp = to_string(x);
while(!tmp.empty()){
if(tmp.front() == tmp.back()){
if(tmp.size()==1){
return true;
}
else{
tmp.erase(tmp.end() - 1);
tmp.erase(tmp.begin());
}
}
else{
return false;
}
}
return true;
}
}
};
반응형
'Programming Solve > Leetcode' 카테고리의 다른 글
LeetCode - Median of Two Sorted Arrays / C++ (0) | 2022.04.25 |
---|---|
리트코드(Leetcode) - Roman to Integer / C++ (0) | 2021.12.01 |
Leetcode(리트코드) Two sum (0) | 2021.03.15 |