-
回文數
給你一個整數 x ,如果 x 是一個回文整數,傳回 true ;否則,傳回 false 。
回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。例如,121 是回文,而 123 不是。
示例 1:
輸入:x = 121
輸出:true
示例 2:
輸入:x = -121
輸出:false
解釋:從左向右讀, 為 -121 。 從右向左讀, 為 121- 。是以它不是一個回文數。
示例 3:
輸入:x = 10
輸出:false
解釋:從右向左讀, 為 01 。是以它不是一個回文數。
示例 4:
輸入:x = -101
輸出:false
提示:
-2^31 <= x <= 2^31 - 1
分析:
回文數的判斷可以用兩種方法
1.建立一個整數,将它變成需要驗證的整數的倒序,再驗證該數與原數是否相等。
2.将該整數變為一個字元串,然後用首末雙指針對該字元串進行周遊。
方法1代碼如下:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)return false;
else if(x==0)return true;
else
{
long sum=0;
int x2=x;
while(x2)
{
sum=sum*10+x2%10;
x2/=10;
}
if(x==sum)return true;
else
return false;
}
}
};
方法2代碼如下:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)return false;
else if(x==0)return true;
else
{
string str="";
while(x)
{
str+=x%10;
x/=10;
}
int left=0,right=str.size()-1;
while(left<=right)
{
if(str[left]!=str[right])
return false;
left++;
right--;
}
return true;
}
}
};
覺得該篇文章有用的請不要忘記忘記點選右下角的大拇指~
歡迎大家關注我的公衆号:Smooth前端成長記錄
公衆号同步更新CSDN部落格内容,想友善閱讀部落格的C友可以來關注我的公衆号以便獲得更優良的閱讀體驗~