[string]Roman to Integer,Integer to Roman
一.Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
- 相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3;
- 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12;
- 小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:Ⅳ= 4;Ⅸ= 9;
V 和 X 左边的小数字只能用Ⅰ。
L 和 C 左边的小数字只能用X。
D 和 M 左 边的小数字只能用C。
- 正常使用时,连写的数字重复不得超过三次。(表盘上的四点钟“IIII”例外)
- 在一个数的上面画一条横线,表示这个数扩大1000倍。
- class Solution {
- public:
- int romanToInt(string s) {
- // Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)
- int values[] ={
- ,,,,,,,,,,,,,,,,,,,,,,,,,
- };
- int size = s.size();
- int res = ;
- for(int i=;i<size;i++){
- if(i+<size){
- if(values[s[i]-'A'] >= values[s[i+]-'A'])
- res += values[s[i]-'A'];
- else
- res -= values[s[i]-'A'];
- }else{
- res += values[s[i]-'A'];
- }
- }
- return res;
- }
- };
二.Integer to Roman
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
- class Solution {
- public:
- string digitToRoman(int digit,int base,string kvs[][])
- {
- string res;
- switch(digit){
- case : res = kvs[base][digit];break;
- case : res += kvs[base][];res += kvs[base][];res += kvs[base][];res += kvs[base][];break;
- case : res += kvs[base][];res += kvs[base][];res += kvs[base][];break;
- case : res += kvs[base][];res += kvs[base][];break;
- case : res = kvs[base][];break;
- case : res = kvs[base][];break;
- case : res += kvs[base][];res += kvs[base][];res += kvs[base][];break;
- case : res += kvs[base][];res += kvs[base][];break;
- case : res += kvs[base][];break;
- default: res="";
- }
- return res;
- }
- string intToRoman(int num) {
- string kvs[][];
- kvs[][] = "I"; kvs[][]="IV"; kvs[][]="V"; kvs[][]="IX";
- kvs[][] = "X";kvs[][] = "XL"; kvs[][]="L"; kvs[][]="XC";
- kvs[][] = "C"; kvs[][] = "CD"; kvs[][]="D"; kvs[][]="CM";
- kvs[][] = "M";
- int d = num%;num/=;//个
- int c = num%;num/=;//十
- int b = num%;num/=;//百
- int a = num%;num/=;//千
- string res =digitToRoman(a,,kvs)+digitToRoman(b,,kvs)+digitToRoman(c,,kvs)+digitToRoman(d,,kvs);
- return res;
- }
- };
[string]Roman to Integer,Integer to Roman的更多相关文章
- 【LeetCode】Roman to Integer & Integer to Roman
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
- LeetCode:Roman to Integer,Integer to Roman
首先简单介绍一下罗马数字,一下摘自维基百科 罗马数字共有7个,即I(1).V(5).X(10).L(50).C(100).D(500)和M(1000).按照下述的规则可以表示任意正整数.需要注意的是罗 ...
- Roman to Integer && Integer to Roman 解答
Roman Numeral Chart V:5 X:10 L:50 C:100 D:500 M:1000 规则: 1. 重复次数表示该数的倍数2. 右加左减:较大的罗马数字右边记上较小的罗马数字,表示 ...
- Roman to Integer & Integer to Roman
题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...
- Java基础之引用(String,char[],Integer)总结
1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...
- java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换
一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...
- 批量删除以及将String数组转换成Integer数组的奇淫技巧
首先在pom.xml文件添加依赖: <!-- bean工具 --> <dependency> <groupId>commons-beanutils</grou ...
- Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题
1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...
- String,int,Integer之间的转换
public class Test{ public static void main(String[] args) { //int转换成Integer Integer in = new Integer ...
随机推荐
- Android SQLite的使用1(非原创)
1.继承SQLiteOpenHelper :public class MyOpenHelper extends SQLiteOpenHelper {} 2.重写下面3个方法 package com.e ...
- trangleProble switch方法 java
public class trangleProblem { static int res=1; int codePart=1; int n=100; Stack<Param> stack= ...
- ios9基础知识总结(一)
I--load 类被加载时自动调用,只要类的项目中,运行时就会加载.类一加载,此方法就会调用 //类被加载时调用,只要类的项目中,运行时就会加载,类一加载,此方法就调用 + (void)load { ...
- javascript 高级程序设计学习笔记(面向对象的程序设计) 2
在调用构造函数时会为实例添加一个指向最初原型的指针,我们可以随时为原型添加属性和方法,并且能在实例中体现出来,但如果是重新了原型对象,那就会切断构造函数与最初原型的联系. function Dog ( ...
- linux学习笔记之文件类型,及目录介绍
引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...
- Java并发编程之闭锁简介
闭锁相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭着的,没有任何线程可以通过,当到达结束状态时,这扇门才会打开并容许所有线程通过.它可以使一个或多个线程等待一组事件发生.闭锁状态包括一个计数器 ...
- tab标签切换(无炫效果,简单的显示隐藏)
从最简单的效果开始写起,一个简单的JQ写出tab切换效果,很静态,没有任何的轮转特效,单纯的点击标签显示区域块. 附上代码: HTML: <div class="wrapper&quo ...
- URI、URL和URN之间的区别与联系
URI:Uniform Resource Identifier,统一资源标识符: URL:Uniform Resource Locator,统一资源定位符: URN:Uniform Resource ...
- 03-树1. List Leaves (25)
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...
- (九)boost库之文件处理filesystem
(九)boost库之文件处理filesystem filesystem库是一个可移植的文件系统操作库,它在底层做了大量的工作,使用POSIX标准表示文件系统的路径,使C++具有了类似脚本语言的功能 ...