leetcode之回文数Golang

不将数字转化为字符串判断一个数是不是回文数:

  1、如果该数是负数,那么肯定不是回文数,因为前面有个负号,而后面没有

  2、判断一个非负数是否为回文数:

    从该数的个位一直取到最高位,用来组成一个新的数,判断这个数是否和原来的数相等,如果相等,那么就是回文数,如果不想等,那么不是回文数

    设原数位x,新数为y,y的初始值为0,循环以下过程:

      y=y*10+x%10

      x=x/10

      直到x为0.

    这个过程就将原来数x的每个位置上面的数字反转过来了,然后判断原来的数与新的数是否相等即可

代码如下:

func isPalindrome(x int) bool {
	if x < 0 {
		return false
	}
	tmpNum, revNum := x, 0
	for tmpNum != 0 {
		revNum = revNum*10 + (tmpNum % 10)
		tmpNum /= 10
	}
	if x == revNum {
		return true
	}
	return false
}

  

posted @ 2020-06-10 17:11  胖胖咩  阅读(228)  评论(0)    收藏  举报