目录
问题描述
代码解决以及思想
解法(一)
知识点
解法(二)
问题描述
代码解决以及思想
解法(一)
class Solution {
public:bool isPalindrome(int x) {string arr = to_string(x); // 将整数转换为字符串string brr; // 用于存储逆序的字符串// 逆序构建字符串 brrfor (int i = arr.size() - 1; i >= 0; i--) {brr += arr[i];}// 比较正序字符串 arr 和逆序字符串 brr 是否相等return arr == brr;}
};
知识点
在C++中,你可以使用标准库提供的函数来将整数转换为字符串。
使用 std::to_string()
函数:
#include <iostream>
#include <string>int main() {int num = 123;std::string str = std::to_string(num);std::cout << "Converted string: " << str << std::endl;return 0;
}
解法(二)
class Solution {
public:bool isPalindrome(int x) {if (x < 0) {return false; // 负数不可能是回文数}int original = x;int reversed = 0;while (x > 0) {int digit = x % 10; // 获取最低位的数字// 检查是否会溢出if (reversed > INT_MAX / 10 || (reversed == INT_MAX / 10 && digit > INT_MAX % 10)) {return false;}reversed = reversed * 10 + digit; // 构建逆序数字x /= 10; // 去掉最低位}return original == reversed; // 比较原始数字和逆序数字是否相等}
};