leetcode 13. Roman to Integer

来源:互联网 发布:js实现3d翻转效果 编辑:程序博客网 时间:2024/06/03 12:26

题目

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

题解

public class Solution {      int romanToInt(String s) {            char[] sArr=s.toCharArray();                        int ret = toNumber(sArr[0]);            for (int i = 1; i < sArr.length; i++) {                if (toNumber(sArr[i - 1]) < toNumber(sArr[i])) {                    ret += toNumber(sArr[i]) - 2 * toNumber(sArr[i - 1]);                } else {                    ret += toNumber(sArr[i]);                }            }            return ret;        }        int toNumber(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;            }            return 0;        }}

Integer to Roman

 public String intToRoman(int num) {        String[][] roman = {            {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},//个位数            {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},//十位数            {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},//百位数            {"", "M", "MM", "MMM"}//千位数        };        String mystring = "";        int digit = 0;        while (num != 0) {            //int remain = num % 10;            mystring = roman[digit++][num%10]+ mystring;            //digit++;            num /= 10;        }        return mystring;    }

原文链接:http://blog.csdn.net/ljiabin/article/details/39968583

0 0
原创粉丝点击