此处写的是13题,12题就不写了12题链接,可以去看看
题目
https://leetcode-cn.com/problems/roman-to-integer/
代码
class Solution {
public int romanToInt(String s) {
int len=s.length();
int res=0;
int tmp=0;
//I,X,C
for(int i=0;i<len;i++){
if(s.charAt(i)=='V'){
tmp+=5;
res+=tmp;
tmp=0;
}
else if(s.charAt(i)=='L'){
tmp+=50;
res+=tmp;
tmp=0;
}
else if(s.charAt(i)=='D'){
tmp+=500;
res+=tmp;
tmp=0;
}
else if(s.charAt(i)=='M'){
tmp+=1000;
res+=tmp;
tmp=0;
}
else if(s.charAt(i)=='I'){
if(i+1<len&&(s.charAt(i+1)=='V'||s.charAt(i+1)=='X')){
tmp=-1;
}
else{
tmp+=1;
res+=tmp;
tmp=0;
}
}
else if(s.charAt(i)=='X'){
if(i+1<len&&(s.charAt(i+1)=='L'||s.charAt(i+1)=='C')){
tmp=-10;
}
else{
tmp+=10;
res+=tmp;
tmp=0;
}
}
else if(s.charAt(i)=='C'){
if(i+1<len&&(s.charAt(i+1)=='D'||s.charAt(i+1)=='M')){
tmp=-100;
}
else{
tmp+=100;
res+=tmp;
tmp=0;
}
}
}
return res;
}
}
复杂度
时间O(N)
空间O(1)