我是靠谱客的博主 霸气小懒虫,最近开发中收集的这篇文章主要介绍c++STL容器--回文数问题题目描述:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述:

  • 给你一个整数 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容器--回文数问题题目描述:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部