LeetCode - 数组系列 - 回文数

  • 题目:回文数

  • 难度:简单

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

  • 示例 1:
    输入: 121
    输出: true

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

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

C语言算法1:将数字每一位都放入数组,然后前后比对
在这里插入图片描述

bool isPalindrome(int x){
	if(x<0) return false;
	int y = x;
	int len = 0;
	int a[11];
	while(y != 0){
		a[len] = y % 10;
		y /= 10;
		len++;
	}
	int index = 0;
	while(index < len/2){	//0 len=5
		if(a[index] != a[len-index-1]){
			return false;
		}
		index++;
	}
	return true;
}

C语言算法2:将数字反转,如果反转前后数字相同,则为回文串
在这里插入图片描述

int reverse(int x){
    long count=0;
    while(x!=0){
        count=count*10+x%10;
        x=x/10;
    }
    return count;
}
bool isPalindrome(int x){
	if(x<0) return false;
	if(reverse(x) == x){
		return true;
	}
	return false;
}

猜你喜欢

转载自blog.csdn.net/weixin_45437022/article/details/106661477