概述
题目描述:
- 给你一个整数 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);
stack<char> stk;
for(i = 0;i<cp.length();i++)
stk.push(cp[i]);
for(i = 0;i<cp.length();i++)
if(stk.top()!=cp[i]) {
break;
}else{
stk.pop();
}
if(i<cp.length()) return false;
else return true;
}
};
工具分析:
使用stl容器中的string容器,其中的to_string,是c++11的将数字转为字符串的功能函数,栈容器stack,push()为栈容器的入栈函数,pop()为出栈函数,top()为获取栈顶元素,length()为string容器的获取元素个数函数。
最后
以上就是霸气小懒虫为你收集整理的c++STL容器--回文数问题题目描述:的全部内容,希望文章能够帮你解决c++STL容器--回文数问题题目描述:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复