罗马数字转整数
来源:互联网 发布:淘宝情侣装批发 编辑:程序博客网 时间:2024/04/26 00:23
描述:给定一个罗马数字,将其转换成整数。
返回的结果要求在1到3999的范围内。
思路:罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000),当小的位于大的之前时,就是大的减去小的;当小的位于大的之后时,就是大的加上小的。根据这一规则,可以想到先转换第一个字母,然后默认加上第二个字母,如果第二个字母比第一个字母代表的整数大,就再减去2倍的第一个字母代表的整数。以此类推,就可得到整数。至于相应的字母对应的整数,可以用一个新函数来实现相应的功能。
代码:
class Solution {public: /* * @param s: Roman representation * @return: an integer */ int romanToInt(string s) { // write your code here int res = 0; res += toInt(s[0]); for(int j = 1; j < s.length(); j++){ res += toInt(s[j]); if(toInt(s[j-1]) < toInt(s[j])){ res -= toInt(s[j-1]) * 2; } } return res; } int toInt(char s){ switch(s){ 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; } }};
阅读全文
0 0
- LeetCode 罗马数字转整数
- 罗马数字转整数
- 整数转罗马数字
- LintCode:整数转罗马数字
- LintCode_419_罗马数字转整数
- LintCode_418_整数转罗马数字
- Lintcode 罗马数字转整数
- [Lintcode]罗马数字转整数
- lintcode -- 罗马数字转整数
- lintcode -- 整数转罗马数字
- Lingcode 整数转罗马数字
- 罗马数字转整数
- 整数转罗马数字-LintCode
- 罗马数字转整数-LintCode
- lintcode-罗马数字转整数-419
- Integer to Roman 整数转罗马数字
- [LeetCode]Integer to Roman整数转罗马数字
- *[lintcode] Integer to Roman 整数转罗马数字
- 浅谈Java中的补零扩展和补符号位扩展
- Kudo介绍 + Spark\Python\Scala开发Kudu应用程序
- 如何解决 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found问题
- Linux基本命令
- CodeForces 702A Maximum Increase
- 罗马数字转整数
- HBuilder代码快捷键
- 必须拿出一半时间来进行引擎学习
- SpringMVC与Mybatis整合---SpringMVC学习笔记(六)
- 趋势外推法
- R语言推荐网站
- Moven+Hibernate编写web
- hdu-5933
- HashMap的线程不安全性