leetcode-13 Roman to Integer
来源:互联网 发布:制作ico图标软件 编辑:程序博客网 时间:2024/05/10 06:21
罗马数字居然一次AC了,太出乎意料了(关于罗马数字是如何表示的可以上网查)
<span style="font-family:Microsoft YaHei;font-size:14px;">int romanToInt(char *s) { if(s == NULL || strlen(s) == 0) return 0; int len = strlen(s); int i; int sum = 0; for(i = 0; i < len; i++){ switch(s[i]){ case 'M': sum += 1000; break; case 'D': sum += 500; break; case 'C': if(i+1 < len && s[i+1] == 'D'){ sum += 400; i++; }else if(i+1 < len && s[i+1] == 'M'){ sum += 900; i++; }else sum += 100; break; case 'L': sum += 50; break; case 'X': if(i+1 < len && s[i+1] == 'L'){ sum += 40; i++; }else if(i+1 < len && s[i+1] == 'C'){ sum += 90; i++; }else sum += 10; break; case 'V': sum += 5; break; case 'I': if(i+1 < len && s[i+1] == 'V'){ sum += 4; i++; }else if(i+1 < len && s[i+1] == 'X'){ sum += 9; i++; }else sum += 1; break; } } return sum;}</span>
<span style="font-family:Microsoft YaHei;">public int romanToInt(String s) { int sum=0; if(s.indexOf("IV")!=-1){sum-=2;} //IV本应该为4,结果算成了6,所以要减2 if(s.indexOf("IX")!=-1){sum-=2;} if(s.indexOf("XL")!=-1){sum-=20;} if(s.indexOf("XC")!=-1){sum-=20;} if(s.indexOf("CD")!=-1){sum-=200;} if(s.indexOf("CM")!=-1){sum-=200;} char c[]=s.toCharArray(); int count=0; for(;count<=s.length()-1;count++){ if(c[count]=='M') sum+=1000; if(c[count]=='D') sum+=500; if(c[count]=='C') sum+=100; if(c[count]=='L') sum+=50; if(c[count]=='X') sum+=10; if(c[count]=='V') sum+=5; if(c[count]=='I') sum+=1; }</span><span style="font-family:Microsoft YaHei;"> return sum;}</span>
第二种:
<span style="font-family:Microsoft YaHei;font-size:14px;"> class Solution { public: int romanToInt(string s) { int num = 0; int size = s.size(); for (int i = 0; i < size; i++) { if (i < (size - 1) && romanCharToInt(s[i]) < romanCharToInt(s[i + 1])) { //如果出现了逆序,则减,否则,加,这种解法比我的更简洁,我的多了判断,其实没有必要 num -= romanCharToInt(s[i]); } else { num += romanCharToInt(s[i]); } } return num; } int romanCharToInt(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; } } };</span>
0 0
- leetcode-13:Roman to Integer
- leetcode 13 Roman to Integer
- Leetcode【13】:Roman to Integer
- [leetcode 13] Roman to Integer
- [Leetcode] 13 - Roman to Integer
- LeetCode | #13 Roman to Integer
- leetcode.13---------Roman to Integer
- leetCode #13 Roman to Integer
- leetcode-13 Roman to Integer
- leetcode 13 Roman to Integer
- LeetCode 13 Roman to Integer
- LeetCode 13 - Roman to Integer
- leetcode 13 -- Roman to Integer
- LeetCode 13:"Roman to Integer"
- LeetCode---(13)Roman to Integer
- leetcode-13Roman to Integer
- leetcode 13: Roman to Integer
- Leetcode 13 Roman to Integer
- hdu 1485 非常可乐 题解
- linux密码加密方式与暴力破解代码
- thinking in java 第二天
- 第四周上机项目1 三角形类的构造函数
- 第四周项目三用对象数组操作长方柱类
- leetcode-13 Roman to Integer
- JBoss主要版本下载链接一览
- 熬夜真伤
- Raspberry Pi:设置 tight VNC Server 为开机启动
- Hadoop学习之HBase的集群环境搭建
- Python 核心编程第七章7.1-7.3
- 最短路径—Dijkstra算法和Floyd算法
- 第4周-项目4-静态成员应用-时间时制及输出控制
- svm支持向量机