leetcode-9. 回文數,
判斷一個整數是否是回文數,回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數,
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 , 從右向左讀, 為 121- ,因此它不是一個回文數,
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 ,因此它不是一個回文數,
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problemset/all/
著作權歸領扣網路所有,商業轉載請聯系官方授權,非商業轉載請注明出處,
// 將所有數位進行反轉.
bool isPalindrome( int x ) {
unsigned answer = 0;
if( x < 0 ) {
return 0;
}
for( int x1 = x; x1 != 0; x1 /= 10 ) {
answer = answer * 10 + x1 % 10;
}
return answer == (unsigned)x;
}
// 將后一半的低數位進行反轉.
bool isPalindrome( int x ) {
int answer = 0;
if( (x < 0) || (x != 0 && x % 10 == 0) ) { // 除了0以外的個位為0的數一定不是回文數.
return 0;
}
for( answer = 0; answer < x; x /= 10 ) {
answer = answer * 10 + x % 10;
}
return answer == x || answer / 10 == x; // 例如 121, 反轉后一半低數位后為 12, 而前一半高數位為 1.
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20789.html
標籤:C
下一篇:插入排序
