13.罗马数字转整数
发布日期:2021-05-09 06:57:32 浏览次数:14 分类:博客文章

本文共 1004 字,大约阅读时间需要 3 分钟。

13.罗马数字转整数

题目如下:

解法:来自leetcode的大神。

package leetcode.pac13;/** * @auther Summerday *//** * 前值小于后值  总数减去前值 * 前值大于等于后值  总数加上前值 * 最后一个值必然要加上 */public class Roman {    public static void main(String[] args) {        Roman roman = new Roman();        int m = roman.romanToInt("CMXLIV");        System.out.println("m = [" + m + "]");    }    //根据对应的字符获取相应的数值    private int getValue(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;        }    }    private int romanToInt(String s){        //sum存取总数值        int sum = 0;        //preNum用以存放前值,初始化为第一个字符代表的数值        int preNum = getValue(s.charAt(0));        //循环便利,从第二个数开始,与前值对比        for (int i = 1; i < s.length(); i++) {        //num存放当前位置上的数值            int num = getValue(s.charAt(i));        //前值小于后值,减去前值,否则将其加上            if(preNum
上一篇:Java多态之向下转型
下一篇:Java关键字之final详解

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月14日 21时44分22秒