整数がpalindromeであるかどうかを判別します

        整数がパリンドロームであるかどうかを判別します。パリンドローム番号は、正の順序(左から右)と逆の順序(右から左)の両方で同じ整数を参照します。

例1:

        入力:121
        出力:true

例2:
        入力:-121
        出力:false
        説明:左から右に読み取ると、-121になります。右から左に読むと121-です。したがって、それはパリンドロームではありません。

例3:
        入力:10
        出力:false
        説明:右から左に読み取ると、01です。したがって、それはパリンドロームではありません。

高度:
        整数を文字列に変換せずにこの問題を解決できますか?

       1)解決策:32個の要素の配列を借用して各番号を格納し、それを半分にして、左右の要素を比較します。
        コアコードは次のとおりです
        。//myHuiWei.cpp

#define MaxSize 32

bool IsHuiWen(int x) {
    
    
	if (x < 0)
		return false;
	else if (x >= 0 && x <= 9) {
    
    
		return true;
	}
	else {
    
    
		int arry[MaxSize];
		int nLen = 0;
		while (x != 0) {
    
    
			arry[nLen++] = x % 10;
			x /= 10;
		}
		for (int j = 0; j < nLen/2; j++) {
    
    
			if (arry[j] != arry[nLen - j -1])
				return false;			
		}

		return true;
	}
}

class Solution {
    
    
public:
	bool isPalindrome(int x) {
    
    
		return IsHuiWen(x);
	}
};

        3.備考の
        出典:LeetCode質問番号:009
        リンク:LeetCodepalindrome番号No009

おすすめ

転載: blog.csdn.net/sanqima/article/details/106867798