leetcode13. 罗马数字转整数
Posted vdk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode13. 罗马数字转整数相关的知识,希望对你有一定的参考价值。
这是个自动机问题,而且是简单题,就不做注解了。
class Solution { public: int romanToInt(string s) { int status=0; int num=0; int i=0; while(i<s.length()){ cout<<i<<" "<<num<<endl; switch(status){ case 0: if(s[i]==\'L\'){ num+=50; } if(s[i]==\'D\'){ num+=500; } if(s[i]==\'M\'){ num+=1000; } if(s[i]==\'V\'){ num+=5; } if(s[i]==\'I\'){ status=1; } if(s[i]==\'X\'){ status=10; } if(s[i]==\'C\'){ status=100; } i++; break; case 1: if(s[i]==\'V\'){ num+=4; status=0; i++; }else if(s[i]==\'X\'){ num+=9; status=0; i++; }else{ num+=1; status=0; } break; case 10: if(s[i]==\'L\'){ num+=40; status=0; i++; }else if(s[i]==\'C\'){ num+=90; status=0; i++; }else{ num+=10; status=0; } break; case 100: if(s[i]==\'D\'){ num+=400; status=0; i++; }else if(s[i]==\'M\'){ num+=900; status=0; i++; }else{ num+=100; status=0; } break; } } cout<<num<<endl; return num+status; } };
以上是关于leetcode13. 罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 13 罗马数字转整数[找规律 多条件判断] HERODING的LeetCode之路
LeetCode 13. 罗马数字转整数 java 两种解法