您的位置:首页 > 其它

LeetCode13 Roman to Integer

2016-10-21 10:02 423 查看

题目要求

Given a roman numeral, convert it to an integer.

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

Subscribe to see which companies asked this question

package com.syy.leetcode13;

public class solution {

public int romanToInt(String s) {

int sum = 0;
//建立对应的函数与数字的对照关系
int[] arr = new int[s.length()];
for(int i = s.length() - 1; i >= 0; i--) {
int temp = 0;
switch(s.charAt(i)) {
case 'I' :
temp = 1;break;
case 'V' :
temp = 5;break;
case 'X' :
temp = 10;break;
case 'L' :
temp = 50;break;
case 'C' :
temp = 100;break;
case 'D' :
temp = 500;break;
case 'M' :
temp = 1000;break;
}
arr[i] = temp;
}

//拆分字符串
if(arr.length == 1) {
return arr[0];
}
sum = arr[arr.length - 1];
for(int i = arr.length - 2; i >= 0 ; i--) {
int temp = arr[i] >= arr[i + 1] ? arr[i] : -arr[i];
sum += temp;
}
return sum;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: