罗马数字变数字(Roman to Integer)
来源:互联网 发布:c语言unicode转字符串 编辑:程序博客网 时间:2024/06/05 03:15
https://leetcode.com/problems/roman-to-integer/description/
上一题的反向出题:
思路:既然知道罗马数字里的字符都只表示千级,百级,十级.....故一个字符一个字符的扫描,将其所对应的数字相加即可。注意小的在大的前面是相减
实现:想用c++的map容器,出错。。。大神指导一下
map初始化:
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>#include<limits.h>#include<vector>#include<map>using namespace std;int romanToInt(string s) { map<char,int> Roman; Roman roman; roman = {{'I',1}, {'V',5}, {'X',10}, {'L',50}, {'C',100}, {'D',500}, {'M',1000}}; int integer =0; int i; for(i=0;i<s.length()-1;i++) { if(roman[s[i]]<roman[s[i]+1]) integer-=roman[s[i]]; else integer+=roman[s[i]]; } return integer;}int main(){ string s; cin >> s; int a=romanToInt(s); printf("%d",a);}
switch AC代码
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>#include<limits.h>#include<vector>#include<map>using namespace std;int romanSwich(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; }}int romanToInt(string s) { int integer =0; int i; for(i=0;i<s.length();i++) { if(i<s.length()-1&&romanSwich(s[i])<romanSwich(s[i+1])) integer-=romanSwich(s[i]); else integer+=romanSwich(s[i]); } return integer;}int main(){ string s; cin >> s; int a=romanToInt(s); printf("%d",a);}
阅读全文
0 0
- 罗马数字变数字(Roman to Integer)
- 12:Integer to Roman(数字转为罗马数字)
- 将数字转换为罗马数字(Integer to Roman)
- LeetCode Integer to Roman数字转成罗马数字
- Integer to Roman (罗马数字转换) 【leetcode】
- Integer to Roman (整数转为罗马数字)
- [LeetCoce 13] Roman to Integer 罗马数字转化为数字
- LeetCode-13-Roman to Integer(罗马数字转换为整型数字)
- Integer to Roman (罗马数字转换)
- leetcode解题之 12&13. Integer to Roman Java版(罗马数字和数字的转换)
- integer-to-roman and roman-to-integer罗马数字转换
- LeetCode | Integer to Roman(整数转换成罗马数字)
- LeetCode | Roman to Integer(罗马数字转换成整数)
- LeetCode OJ 之 Roman to Integer(罗马数字转十进制)
- 13.Roman to Integer (罗马数字转成整数)
- [LeetCode-13] Roman to Integer(罗马数字转成阿拉伯数字)
- LeetCode 12. Integer to Roman(阿拉伯转罗马数字)
- LeetCode 13. Roman to Integer(罗马数字转阿拉伯数字)
- 第七周项目4
- 1036. 跟奥巴马一起编程(15)
- 【MySQL】预处理方式api处理
- spring中的IOC
- Python爬虫(一)——了解爬虫
- 罗马数字变数字(Roman to Integer)
- 1043. 输出PATest(20)
- 最小费用流 uva10806
- jquery笔记
- MySQL忘记root密码怎么办
- 【MySQL】事务api实现
- python语言易错知识点强化
- servlet+jsp实现验证码登录
- poj 1903 中途相遇法