c++STL容器--回文数问题

c++STL容器--回文数问题,第1张

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 stk;
        for(i = 0;i 

工具分析:

使用stl容器中的string容器,其中的to_string,是c++11的将数字转为字符串的功能函数,栈容器stack,push()为栈容器的入栈函数,pop()为出栈函数,top()为获取栈顶元素,length()为string容器的获取元素个数函数。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5659613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存