9. 回文数(判断给定int值是否为回文数)

问题

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true

示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

来源:力扣(LeetCode)


解答

C语言

利用7.整数翻转的算法,将给定的int反转后的值与给定值进行比较,相同则为回文数。

//20 ms	5.3 MB
bool isPalindrome(int x){
    if (x < 0 ) {
        return false;
    }

    long back = 0;
    int temp = x;

    while (temp != 0) {
        back = temp % 10 + back * 10;
        temp = temp / 10;
    }
    
    if(back == x) {
        return true;
    } else {
        return false;
    }
    
}

golang

同理

// 16 ms	5.2 MB
func isPalindrome(x int) bool {
    if x < 0 {
        return false
    }
    changeNum := 0
    temp := x
    
    for temp != 0 {
        changeNum = changeNum * 10 + temp % 10
        temp = temp / 10  
    }

    return changeNum == x
}
posted @ 2020-10-04 13:26  Dar1inge  阅读(288)  评论(0)    收藏  举报