13. Roman to Integer
题目:
解答:
就是12题的逆运算
代码:
class Solution {
public:
int romanToInt(string s) {
int result = 0, len = s.size(), index = 0;
while(index < len && s[index] == 'M'){
result += 1000;
index++;
}
if(index < len - 1 && s[index] == 'C' && s[index+1] == 'M'){
result += 900;
index += 2;
}
if(index < len && s[index] == 'D'){
result += 500;
index++;
}
if(index < len -1 && s[index] == 'C' && s[index+1] == 'D'){
result += 400;
index += 2;
}
while(index < len && s[index] == 'C'){
result += 100;
index++;
}
if(index < len - 1 && s[index] == 'X' && s[index+1] == 'C'){
result += 90;
index += 2;
}
if(index < len && s[index] == 'L'){
result += 50;
index++;
}
if(index < len -1 && s[index] == 'X' && s[index+1] == 'L'){
result += 40;
index += 2;
}
while(index < len && s[index] == 'X'){
result += 10;
index++;
}
if(index < len - 1 && s[index] == 'I' && s[index+1] == 'X'){
result += 9;
index += 2;
}
if(index < len && s[index] == 'V'){
result += 5;
index++;
}
if(index < len -1 && s[index] == 'I' && s[index+1] == 'V'){
result += 4;
index += 2;
}
while(index < len && s[index] == 'I'){
result += 1;
index++;
}
return result;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)