Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
public class Solution {
public int romanToInt(String s) {
/*I = 1;
V = 5;
X = 10;
L = 50;
C = 100;
D = 500;
M = 1000;
*/
int overall = 0;
for(int i=0;i<s.length();i++) {
char c = s.charAt(i);
int val = getInt(c);
if(i!=s.length()-1 && val<getInt(s.charAt(i+1)) ) {
overall -= val;
} else {
overall += val;
}
}
return overall;
}
private int getInt(char c) {
switch(c) {
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;
}
}
}
没有评论:
发表评论