一緒に書く習慣をつけましょう!「ナゲッツデイリーニュープラン・4月アップデートチャレンジ」に参加して6日目です。クリックしてイベントの詳細をご覧ください。
1.問題の説明
回文の x
場合 は整数 を返し 、それ以外の場合はを返し ます。x
true
false
回文は、正の順序(左から右)と逆の順序(右から左)で同じものを読み取る整数です。
- たとえば、
121
は回文であり、ではあり123
ません。
トピックリンク:回文数
第二に、主題の要件
例1
输入: x = 121
输出: true
复制代码
例2
输入: x = -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
复制代码
訪問
1.数学思想、回文判断
2.建议用时15~35min
复制代码
3.問題分析
回文数!起きなさい。
回文数は、前から後ろにトラバースした結果が後ろから前にトラバースした結果に対応することです。スタックと組み合わせたアプリケーションはたくさんありますが、この問題は比較的単純です。数値を配列に直接格納できます。
まず、負の数は直接falseを出力します。これは、-記号を他の数とペアにすることができないためです。
次に、データ範囲は最大10ビットであり、12ビットサイズの配列は各桁を格納するのに十分です。
番号が順番に配列に格納された後、最初の番号が順番に判断され、等しくない場合はfalseが返されます。
最後に、上記のエラー条件のいずれも満たされない場合は、trueを返します。
第四に、エンコーディングの実装
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)//负数返回false
return false;
int i,n=0,a[12];//初始化数据
while(x)//数字存入数组
{
a[n++]=x%10;
x=x/10;
}
for(i=0;i<n/2;i++)//首尾依次向内收缩判断
if(a[i]!=a[n-i-1])//不相等,输出false
return false;
return true;//返回true
}
};
复制代码