【LeetCode 13】罗马数字转整数
LeetCode 13 整数 罗马数字
2023-09-14 09:03:43 时间
【题解】
就是上一题反过来的过程。 因为有说一般情况下后面的罗马数字是小于前面的罗马数字的。 如果前面的罗马数字小于后面的罗马数字了。 说明出现了4,9,40,90这些特殊情况。 那么就得判断一下下了。 直接用map【代码】
class Solution {
public:
int romanToInt(string s) {
map<string,int> dic;
dic.clear();
int nums[]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
string roma[]={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
for (int i = 0;i < 13;i++) dic[roma[i]] = nums[i];
int len = s.size();
int ans = 0;
for (int i = 0;i < len;i++){
string chara = "";string charb = "";
chara+=s[i];
if (i<len-1) charb +=s[i+1];
if (i<len-1 && dic[chara]<dic[charb]){
string temp = "";
temp+=chara;temp+=charb;
ans = ans + dic[temp];
i++;
}else ans+=dic[chara];
}
return ans;
}
};
相关文章
- LeetCode每日一题-9:替换后的最长重复字符串
- ☆打卡算法☆LeetCode 219. 存在重复元素 II 算法解析
- 日拱一卒,LeetCode周赛287,训练你的逆向思维
- LeetCode每日一题06-13
- ☆打卡算法☆LeetCode 187. 重复的DNA序列 算法解析
- leetcode二叉树的层次遍历_完全二叉树的中序序列
- 刷完这19道leetcode二分查找算法,不信进不了大厂
- leetcode 记录
- 【day08】LeetCode(力扣)每日一刷[409. 最长回文串 ][144. 二叉树的前序遍历][589. N 叉树的前序遍历 ]
- leetcode 300. 最长递增子序列 js 动态规划实现
- LeetCode周赛325,反向思考专场,你有逆向思维吗?
- LeetCode - #72 编辑距离(Top 100)
- LeetCode题解——哈希表篇
- JavaScript刷LeetCode之双指针技巧(下)
- 用javascript分类刷leetcode-排序算法(图文视频讲解)
- LeetCode-739-每日温度
- leetcode每日一题:字符串中的第一个唯一字符