12. Integer to Roman 13. Roman to Integer
来源:互联网 发布:美工技巧 编辑:程序博客网 时间:2024/05/16 03:27
Integer to Roman
分别计算每一位上的罗马数字。
public class Solution {public static String intToRoman(int num) {
int[] digit=new int[]{0,0,0,0};
String[] R=new String[]{"M","D","C","L","X","V","I"};
String Roman="";
for(int i=3;i>=0;i--){
digit[i]=num%10;
num=num/10;
}
StringBuilder sb = new StringBuilder();
if(digit[0]>0){
for(int i=0;i<digit[0];i++){
sb.append("M");
}
}
for(int j=1;j<4;j++){
if(digit[j]>=9){
sb.append(R[2*j]).append(R[2*j-2]);
}
else{
if(digit[j]>=5){
sb.append(R[2*j-1]);
for(int i=0;i<digit[j]-5;i++){
sb.append(R[2*j]);
}
}
else{
if(digit[j]==4){
sb.append(R[2*j]).append(R[2*j-1]);
}
else{
if(digit[j]>0){
sb.append(R[2*j]);
for(int i=0;i<digit[j]-1;i++)
sb.append(R[2*j]);
}
}
}
}
}
return sb.toString();
}
}
Roman to integer:
倒过来比较相邻字符代表的大小。
public class Solution {
public int romanToInt(String s) {
HashMap<Character, Integer> map = new HashMap<>();
map.put('I', 1);
map.put('V', 5);
map.put('X', 10);
map.put('L', 50);
map.put('C', 100);
map.put('D', 500);
map.put('M', 1000);
int len = s.length();
int res = map.get(s.charAt(s.length() -1));
for(int i = s.length() -2; i >= 0 ; i--){
if(map.get(s.charAt(i)) >= map.get(s.charAt(i+1))){
res += map.get(s.charAt(i));
}
else{
res -= map.get(s.charAt(i));
}
}
return res;
}
}
- 12. Integer to Roman&&13. Roman to Integer
- LeetCode 12. Integer to Roman & 13. Roman to Integer
- 【LeetCode】13. Roman to Integer && 12. Integer to Roman
- 12. Integer to Roman 和 13. Roman to Integer
- Leetcode 13. Roman to Integer & 12. Integer to Roman
- 12. Integer to Roman 13. Roman to Integer
- 12. Integer to Roman \ 13. Roman to Integer
- 【LeetCode】13. Roman to Integer && 12. Integer to Roman
- Leetcode #12. Integer to Roman & #13. Roman to Integer
- 13. Roman to Integer &&12. Integer to Roman
- LeetCode 13. Roman to Integer和12. Integer to Roman
- LeetCode-12. Integer to Roman-13. Roman to Integer
- 12.Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- ME22N PO删除控制
- 深入浅出JMS(一)--JMS基本概念
- 人脸识别论文梳理
- ucosIII 同时等待多个内核对象
- linux菜鸟入门之系统启动流程
- 12. Integer to Roman 13. Roman to Integer
- java bytecode
- Python菜鸟成长记——简单实现用户登录和增删改查以及文件上传和下载
- 维护篇(5.2)-12. 日志保存至服务器 ❀ 飞塔 (Fortinet) 防火墙
- lec(logic equivalence check)--cadence 等价性检查工具理解
- MyBatis学习总结——实现关联表查询
- 如何查询winter 17的release plan
- C# 字符串操作汇总
- Hbuilder入门注意点