LeetCode Roman to Integer

来源:互联网 发布:淘宝收藏量有什么用 编辑:程序博客网 时间:2024/05/21 12:44

原题链接在这里:https://leetcode.com/problems/roman-to-integer/

取当前数值若是比之前的小,就正常加上当前数值,若是比之前位大说明刚才加错了,需要先减掉在加上(cur-pre).

e.g. "XIV", at the beginning, res = 10. When i = 1, cur = 1, pre = 10, cur<pre, res = 11; when i = 2, cur = 5, pre = 1, cur>pre, res = 11-1+(5-1) = 14. 若是cur==pre,正常加cur,"XX" = 20.

AC Java:

public class Solution {    public int romanToInt(String s) {        int res = charToInt(s.charAt(0));        for(int i = 1; i < s.length(); i++){            int cur = charToInt(s.charAt(i));            int pre = charToInt(s.charAt(i-1));            if(cur>pre){                res = res-pre+(cur-pre);            }else{                res+=cur;            }        }        return res;    }        private int charToInt(char c){        int res = 0;        switch(c){            case 'I':                res = 1;                break;            case 'V':                res = 5;                break;            case 'X':                res = 10;                break;            case 'L':                res = 50;                break;            case 'C':                res = 100;                break;            case 'D':                res = 500;                break;            case 'M':                res = 1000;                break;            default:                res = 0;        }        return res;    }}



0 0
原创粉丝点击