https://leetcode.com/problems/palindrome-number/
난이도 : easy
입력으로 들어오는 정수 x 가 펠린드롬인지 아닌지 판단하라.
문자열로 변경하여서 시작지점과 끝지점에 값을 비교하는 방법으로 하는 풀이 할 수 있다.
또한, rX 라는 변수를 하나 두고 % 10 연산으로 나머지 값을 채우면서 x 의 값이 rX 보다 클때까지 연산하여 비교하는 방법이 있다.
x 가 1 2 1 일때
x = 1 2, rX = 1
x = 1 , rX = 12
문자열로 변경하여 시작과 끝을 비교하는 풀이
class Solution {
public:
bool isPalindrome(int x) {
// 문자열로 변경하고 reverse 해서 같은 수인지 확인 하는 방식으로 풀어 보겠음
// 펠린드롬에 특징을 이용해서
// 이렇게하면 문자열로 변경됨
string s = to_string(x);
// 리버스 문자를 만든다
string tmp = s;
reverse(tmp.begin(), tmp.end());
// 두문자가 같으면 true 틀리면 false
return s == tmp;
}
};
나머지값을 이용한 풀이
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int rX = 0;
while(x > rX) {
rX = rX * 10 + x % 10;
x = x / 10;
}
return rX == x || x == rX/10;
}
};
1. Two Sum (0) | 2021.09.04 |
---|---|
409. Longest Palindrome (0) | 2021.09.04 |
17. Letter Combinations of a Phone Number (0) | 2021.09.04 |
49. Group Anagram (0) | 2021.09.04 |
344. Reverse String (0) | 2021.09.04 |
댓글 영역