LeetCode学习(2) 将罗马数字转换为数字
来源:互联网 发布:bae java jar 编辑:程序博客网 时间:2024/05/16 10:05
1.罗马数字表示如下:
I- 1 II - 2 III - 3IV - 4V – 5VI - 6VII – 7VIII - 8IX - 9X – 10
XI – 11XII – 12XIII – 13XIV – 14XV – 15XVI – 16XVII – 17
XVIII – 18 XIX – 19 XX – 20 XXVIII - 28 XXX - 30
XL - 40 L - 50LX - 60LXX - 70LXXX - 80XC - 90XCIX - 99
C - 100
2.罗马数字只有7个字母组成,每个字母代码的字如下
字母 M D C L X V I
代表数字1000 500 100 50 10 5 1
//c++ VS2013环境#include<iostream>using namespace std;int getNum(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; }}int romanToInt(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function int result = 0; for (int i = 0; i<s.size(); i++) { result += getNum(s[i]); } int pre = 0; int cur = getNum(s[0]); for (int i = 1; i<s.size(); i++) { pre = cur; cur = getNum(s[i]); if ((pre * 5 == cur) || (pre * 10 == cur)) { result -= 2 * pre; } } return result;}int romantoInt(string s) { int tagVal[256]; tagVal['I'] = 1; tagVal['V'] = 5; tagVal['X'] = 10; tagVal['C'] = 100; tagVal['M'] = 1000; tagVal['L'] = 50; tagVal['D'] = 500; int val = 0; for(int i = 0; i < s.length(); i++){ if(i+1 >= s.length() || tagVal[s[i+1]] <= tagVal[s[i]]) val += tagVal[s[i]]; else val -= tagVal[s[i]]; } return val; } int main(){ string s = "VII"; cout<<romanToInt(s); //cout<<romantoInt(s);第二种方式进行转换 cout << endl; return 0;}
阅读全文
0 0
- LeetCode学习(2) 将罗马数字转换为数字
- 数字转换为罗马数字
- 【leetcode】第12题:将数字转换成罗马数字
- 将1-3999的数字转换为罗马数字
- Roman Numeral Converter--将给定的数字转换为罗马数字
- 将数字转换为罗马数字(Integer to Roman)
- LeetCode-13-Roman to Integer(罗马数字转换为整型数字)
- 将阿拉伯数字转换为罗马数字
- 将阿拉伯数字转换为罗马数字
- 12.整形数字转换为罗马数字
- Leetcode 13题 罗马数字转换为整形
- Leetcode练习<十八> 罗马数字转换为整数
- 【Leetcode-13】罗马数字转换为阿拉伯数字
- [C++]LeetCode 12: Integer to Roman(将整数转换为罗马数字)
- 数字转换 转成罗马数字
- leetcode刷题笔记之罗马数字转化为数字
- 罗马数字转换为整数
- 罗马数字转换为int
- Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
- 数组方法实现(六)————数组方法slice()
- MySQL数据库知识
- POJ3181 Dollar Dayz-完全背包问题-高精度(大数)处理(附测试数据)
- VS2015环境下生成和调用DLL动态链接库
- LeetCode学习(2) 将罗马数字转换为数字
- StringBuffer、StringBuilder、如何实现可变长
- 动态代理之Waiter案例
- canvas实现动态时钟
- 运算符的运算形式
- python基础-文件读写'r' 和 'rb'区别
- 《数据挖掘导论》学习笔记(第1-2章)
- webservice加上身份验证
- 记录代码