- 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
- 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:输入:x = -101
输出:false
PS:回文数解决相对简单,这里采用stl主要是为了熟悉使用stl解题,这能大大加快解题的效率。
题解:
回文数其实就是首尾依次比较并相同,将数字转为字符串s1,如果采用栈,将s1从第一个元素开始,依次传入栈中,由栈顶元素,也就是从栈末尾开始,到栈首元素,依次和原来的字符串s1从左到右顺序比较,一旦比较发现不同,即可return false,否则,等待全部比较完,return true。
代码:
class Solution { public: bool isPalindrome(int x) { int i; string cp = to_string(x); stackstk; for(i = 0;i 工具分析:
使用stl容器中的string容器,其中的to_string,是c++11的将数字转为字符串的功能函数,栈容器stack,push()为栈容器的入栈函数,pop()为出栈函数,top()为获取栈顶元素,length()为string容器的获取元素个数函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)