leetcode 13
来源:互联网 发布:mac os dmg u盘制作 编辑:程序博客网 时间:2024/06/04 20:05
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
// 1~9: {“I”, “II”, “III”, “IV”, “V”, “VI”, “VII”, “VIII”, “IX”};
// 10~90: {“X”, “XX”, “XXX”, “XL”, “L”, “LX”, “LXX”, “LXXX”, “XC”};
// 100~900: {“C”, “CC”, “CCC”, “CD”, “D”, “DC”, “DCC”, “DCCC”, “CM”};
// 1000~3000: {“M”, “MM”, “MMM”}.
class Solution {public: int romanToInt(string s) { map<char, int> r; int ret = 0;; r['I'] = 1; r['V'] = 5; r['X'] = 10; r['L'] = 50; r['C'] = 100; r['D'] = 500; r['M'] = 1000; // r.insert(make_pair('M', 1000)); typedef string::size_type sz; int nlast = 0; int nthis = 0; for (sz i = 0; i != s.size(); ++i) { if (r.find(s[i]) == r.end()) return 0; nthis = r[s[i]]; if (nthis > nlast) ret += nthis - nlast -nlast; else ret += nthis; nlast = nthis; } return ret; }};
参考后
class Solution {public: int romanToInt(string s) { map<char, int> r = {{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}}; int ret = 0; int nlast = 0; int nthis = 0; for (string::size_type i = s.size() - 1; i != -1; --i) { if (r.find(s[i]) == r.end()) return 0; nthis = r[s[i]]; if (nthis < nlast) ret -= nthis; else ret += nthis; nlast = nthis; } return ret; }};
阅读全文
0 0
- Leetcode 13
- Leetcode(13)
- leetcode 13
- leetcode 13:zigzag conversion
- leetcode 13:symmetric tree
- LeetCode(13) RomanToInteger
- leetcode 13:symmetric tree
- [LeetCode] Palindrome Number [13]
- LeetCode 13 Word Break
- [leetcode]13 Majority Element
- my leetcode#13 #14
- Leetcode #13 in cpp
- Leetcode刷题(13)
- 今日LeetCode--13 14
- leetcode 8(week 13)
- LeetCode(13)-- RomanToInteger
- [Leetcode] 13, 38, 58
- LeetCode-13Sum
- 给两个文件,分别有100亿个URL,我们只有1G内存,如何找到两个文件交集?分别给出精确算法和近似算法。
- [kotlin·算法]二元选择排序对有序数列排序失败的研究
- 第一次使用Android Studio时你应该知道的一切配置
- MySQL索引原理及慢查询优化
- 数塔
- leetcode 13
- Nginx常用代理配置
- JAVA开发的23种设计模式之 --- 模板模式
- 自定义PullToRefreshListView
- 51 nod 1134 最长递增子序列
- 小小的请求方法
- 七层神经网络 PK logstic 回归
- 动态规划—矩阵乘法排序
- Thread的使用