一.Roman to Integer

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法:
  1. 相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3;
  2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12;
  3. 小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:Ⅳ= 4;Ⅸ= 9;

    V 和 X 左边的小数字只能用Ⅰ。

    L 和 C 左边的小数字只能用X。

    D 和 M 左 边的小数字只能用C。

  4. 正常使用时,连写的数字重复不得超过三次。(表盘上的四点钟“IIII”例外)
  5. 在一个数的上面画一条横线,表示这个数扩大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

Total Accepted: 49661 Total Submissions: 138165 Difficulty: Medium

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的更多相关文章

  1. 【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 ...

  2. LeetCode:Roman to Integer,Integer to Roman

    首先简单介绍一下罗马数字,一下摘自维基百科 罗马数字共有7个,即I(1).V(5).X(10).L(50).C(100).D(500)和M(1000).按照下述的规则可以表示任意正整数.需要注意的是罗 ...

  3. Roman to Integer && Integer to Roman 解答

    Roman Numeral Chart V:5 X:10 L:50 C:100 D:500 M:1000 规则: 1. 重复次数表示该数的倍数2. 右加左减:较大的罗马数字右边记上较小的罗马数字,表示 ...

  4. Roman to Integer & Integer to Roman

    题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...

  5. Java基础之引用(String,char[],Integer)总结

    1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer  ...

  6. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

  7. 批量删除以及将String数组转换成Integer数组的奇淫技巧

    首先在pom.xml文件添加依赖: <!-- bean工具 --> <dependency> <groupId>commons-beanutils</grou ...

  8. Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题

    1.String的引用: 下列代码执行后的结果为: public class Test { public static void main(String[] args) { StringBuffer ...

  9. String,int,Integer之间的转换

    public class Test{ public static void main(String[] args) { //int转换成Integer Integer in = new Integer ...

随机推荐

  1. 解决获取IP地址时出现“在一个非套…

    今天单位的一台机器在用IPCONFIG/RENEW时遇到了这个问题,上网查了一下,网上的版本在对XP不太好用,网上的版本如下: 1.从注册表中备份以下项:(当然也可以用Erunt备份整个注册表)HKE ...

  2. js取整数、取余数的方法

    1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.f ...

  3. 仅当使用了列的列表 并且 identity_insert 为 on 时 才能在表 中为标识列指定显式值

    当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'products' 中的标识列插入显式值.” 示例: 1.首先建立一个有标识列的表:CREATE TABLE products (i ...

  4. CDZSC_2015寒假新人(1)——基础 b

    Description The highest building in our city has only one elevator. A request list is made up with N ...

  5. 用JavaScript将Canvas内容转化成图片的方法

    上周我们花了半天时间开发下一个准备放进Mozilla Marketplace的应用.有一个应用现在非常的火热,那就是Instagram,Facebook花了100万美元收购了它.我们也想有100万美元 ...

  6. AngularJS 中的 Promise 和 设计模式

    解决 Javascript 异步事件的传统方式是回调函数:调用一个方法,然后给它一个函数引用,当这个方法完结的时候执行这个函数引用. <!-- lang: js --> $.get('ap ...

  7. Android studio 配置JNI环境

    Android studio配置jni开发环境,主要配置是两个build文件,以及新建一个jni文件,放c代码. 代码如下1: apply plugin: 'com.android.model.app ...

  8. nodejs iconfont处理

    做前端优化,iconfont可以替换掉很多图片,减少请求,并有很好的兼容性,颜色大小也有很好的自由度.现在网上已经有很多公开的iconfont供我们使用.但是每个项目有不同的应用场景,网上的并不能满足 ...

  9. HTML5 Mobile 适应移动端的屏幕<meta name='viewport' content='xxxx'>

    网页手机wap2.0网页的head里加入下面这条元标签,在移动端的浏览器中页面将以原始大小显示,并不允许缩放. 加入 如下代码 即可自适应移动端的屏幕: <meta name="vie ...

  10. jQuery 方法

    方法 描述 animate() 对被选元素应用"自定义"的动画 clearQueue() 对被选元素移除所有排队函数(仍未运行的) delay() 对被选元素的所有排队函数(仍未运 ...