13. 罗马数字转整数

简介:

class Solution {

public int romanToInt(String s) {
    int result = 0;
    int preValue = getValue(s.charAt(0));
    int value = 0;
    for(int i = 1;i < s.length();i++){
        value = getValue(s.charAt(i));
        //只对前一个数做加减运算
        if(value > preValue){
            result -= preValue;
        }else{
            result += preValue;
        }            
        preValue = value;
    }
    //只对前一个数做加减运算
    result += preValue;
    return result;
}

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;

    }
}

}

相关文章
|
2月前
整数转罗马数字
罗马数字由 I、V、X、L、C、D、M 七种字符组成,分别代表 1、5、10、50、100、500、1000。通常小数值位于大值右侧,如 12 表示为 XII;特殊情况下,小值位于大值左侧表示减法,如 4 表示为 IV。转换规则适用于 1 至 3999 的整数。
41 0
|
5月前
|
Java
罗马数字转整数
这篇文章提供了一个Java方法,用于将罗马数字转换为整数,通过一个字符一个字符地解析罗马数字字符串并根据特定规则进行相应的加法或减法运算。
|
8月前
13. 罗马数字转整数
13. 罗马数字转整数
57 2
|
8月前
12. 整数转罗马数字
12. 整数转罗马数字
67 1
|
7月前
|
算法
12.整数转罗马数字
12.整数转罗马数字
|
7月前
13.罗马数字转整数
13.罗马数字转整数
|
8月前
|
测试技术
【力扣】13. 罗马数字转整数、12. 整数转罗马数字
【力扣】13. 罗马数字转整数、12. 整数转罗马数字
LeetCode:13、罗马数字转整数
LeetCode:13、罗马数字转整数
|
8月前
|
测试技术 C++
罗马数字转整数(C++)
罗马数字转整数(C++)
79 0
|
8月前
leetcode-13:罗马数字转整数
leetcode-13:罗马数字转整数
45 0