前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode刷题(11)【简单】回文数&罗马数字转整数(C++)

LeetCode刷题(11)【简单】回文数&罗马数字转整数(C++)

作者头像
半生瓜的blog
发布2023-05-12 21:36:40
1260
发布2023-05-12 21:36:40
举报
文章被收录于专栏:半生瓜のblog

回文数

题目链接——回文数

代码示例

代码语言:javascript
复制
class Solution {
public:
    bool isPalindrome(int x) {
    if(x < 0)
    {
        return false;
    }
    else
    {
        int ret = 0;
        int temp = x;
        while(temp)
        {
            if (ret > INT_MAX / 10 || ret < INT_MIN / 10)
			{
				return 0;
			}
            ret = ret*10 + temp% 10;
            temp /= 10;
        }
        if(ret == x)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    }
};

题解:

代码语言:javascript
复制
同反转整数,在此基础上定义临时变量,不要更改原来的x。

反转整数——反转整数

罗马数字转整数

题目链接——罗马数字转整数

代码示例:

代码语言:javascript
复制
class Solution {
public:

int GetNum(char ch)
    {
        switch(ch)
        {          
        case 'I':
            return 1;
        case 'V':    
            return 5;
        case 'X':
            return 10;
        case 'L':
            return 50;
        case 'C':
            return 100;
        case 'D':
            return 500;
        case 'M':
            return 1000;
        default:
            return 0;
        }
    }

    int romanToInt(string s) {
        int ret = 0;
        int num =0;
        int nextnum = 0;
        for(int i =0;i<s.size();i++)
        {
            num = GetNum(s[i]);
            if(i == s.size()-1)
            {
                ret += num;
            }
            else
            {
                nextnum = GetNum(s[i+1]);
                if(num<nextnum)
                {
            
                    ret -= num;
                }
                else
                {
                    ret += num;
                }
            }
           
        }
        return ret;
    }


};

题解:

代码语言:javascript
复制
定义ret为最后的结果

通过观察罗马数字,得到规律,多个字母拼接的罗马数字,
从左到右依次取每个字母,得到对应的数值,和挨着的下一个字母对应的数值,
如果当前字母对应数值小于下一个字母对应的数字,
那么当前字母对应的数值就变成负的,反之不做改变,
不断加到ret中。
......
其中,到了最后一个字母就不找下一个字母了,直接将它对应的数值加到ret中,
返回结果ret。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 回文数
  • 罗马数字转整数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档