首页 > 其他 > 详细

3月3日(5) Roman to Integer

时间:2014-03-04 11:25:53      阅读:449      评论:0      收藏:0      [点我收藏+]

原题 Roman to Integer

题意很简单,把Roman字母翻译成int。

实现方式也不难,针对每个字符转成int,从右往左,依次判断,如果当前值比上一个值大则相加,小则相减。

什么,你问我怎么想到的,看Roman的定义,写着写着就想出来了,注意19的Roman为 XIX,从右往左处理比较方便。

bubuko.com,布布扣
class Solution {
public:
    int romanToInt(string s) {
        int ret = 0;
        int last_t = 0;
        
        for (int i = s.length()-1; i>=0; --i)
        {
            int t;
            switch(s[i])
            {
                case I:
                    t = 1;
                    break;
                case V:
                    t = 5;
                    break;
                case X:
                    t = 10;
                    break;
                case L:
                    t = 50;
                    break;
                case C:
                    t = 100;
                    break;
                case D:
                    t = 500;
                    break;
                case M:
                    t = 1000;
                    break;
                default:
                    t = 0;
            }
            if (last_t <= t)
            {
                ret += t;
            } 
            else {
                ret -= t;
            }
            last_t = t;
        }
        return ret;
    }
};
bubuko.com,布布扣

3月3日(5) Roman to Integer,布布扣,bubuko.com

3月3日(5) Roman to Integer

原文:http://www.cnblogs.com/seenthewind/p/3579013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!