概述
注水博客,期末emo加摆烂,想做做简单算法抚慰心灵:
题目描述
9.回文数
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121
是回文,而 123
不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
解题思路
暴力解题:回文数判断时,一半的数字是要调换顺序来比较的,所以想到了先进后出的栈。先判断数字位数length
,确定栈的大小为length/2
,如果是奇数个数字(length%2!=0
),跳过最中间数字。最后别忘了,负数直接判错。
代码
/*大致思路*/
//算出数字位数
//用一个栈来存储判断一半的数字
bool isPalindrome