学习时间:
2023年1月27日
题目描述:

题解分享:
// 作 者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> // 调用malloc函数
// 力扣(LeetCode):9. 回文数
// x:输入的整数
bool isPalindrome(int x) {
// 首先要判断是否为负数,负数不是回文数
if (x < 0) {
return false;
}
int len = 0; // 统计数位长度
int y = x; // 需要设定中间变量,防止原始数据被更改
while (y) { // 遍历
len++;
y /= 10;
}
int* nums = (int*)malloc(sizeof(int) * len); // 建立动态数组
int i = 0;
while (x) { // 遍历数位长度
nums[i] = x % 10; // 将每个数值位统计到数组中
x /= 10;
i++;
}
int low = 0, high = len - 1; // 设定第一个元素位和最后一个元素位
while (low <= high) { // 分别从前面和后面比较数组元素
if (nums[low] == nums[high]) { // 如相等则继续运行
low++;
high--;
}
else { // 如不相等则结束运行
break;
}
}
if (low >= high) { // 如果数组正常结束则返回true
return true;
}
else { // 否则返回false
return false;
}
}
// 测试用例
// 输入 x = 121
// 输出 true
int main() {
int x = 121;
bool re = isPalindrome(x);
printf("%d", re);
return 0;
}
【繁华倾夏】【每日力扣题解分享】【Day13】