首页 > 其他 > 详细

leetcode-罗马数字转整数

时间:2021-01-31 21:12:48      阅读:35      评论:0      收藏:0      [点我收藏+]

数字与符号对应关系的存储:

hashmap映射产生的时间空间代价都要更大,switch..case..效率更高
‘‘‘

switch(c){

        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;

    }

首先判断:
左小于右:做加法
右小于左:做减法
‘‘‘

public int romanToInt(String s) {

    int res=0;

    int preNum=getValue(s.charAt(0));//字符串转字符型调用charAt(),s[i]是string型,不是char型。

    for(int i=1;i<s.length();i++){ //计算字符串的长度要调用length()函数

        int num=getValue(s.charAt(i))

        if(preNum<num) 

            res-=preNum;

        else{

            res+=preNum;

        }

        preNum=num;

    }

    res+=preNum;//加入下一个字符

    return res;

}

leetcode-罗马数字转整数

原文:https://www.cnblogs.com/Acezhang/p/14353988.html

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