LeetCode 12 整数转罗马数字 java
2019-08-03 16:59
405 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36331193/article/details/98351411
方法一
用一个大While循环通过各种if-else语句依次减少num的值构造str,虽然时间代价不大但是代码冗长:
class Solution { public String intToRoman(int num) { String str = ""; while(num>0){ if(num>=1000){ num-=1000; str+='M'; } else if(num >= 900&&num<1000){ num-=900; str+="CM"; } else if(num>=500&&num<900){ num-=500; str+="D"; } else if(num>=400&&num<500){ num-=400; str+="CD"; } else if(num>=100&&num<400){ num-=100; str+="C"; } else if(num>=90&&num<100){ num-=90; str+="XC"; } else if(num>=50&&num<90){ num-=50; str+="L"; } else if(num>=40&&num<50){ num-=40; str+="XL"; } else if(num>=10&&num<40){ num-=10; str+="X"; } else if(num>=9&&num<10){ num-=9; str+="IX"; } else if(num>=5&&num<9){ num-=5; str+="V"; } else if(num==4){ num-=4; str+="IV"; } else{ num-=1; str+="I"; } } return str; } }
可以通过将各种不同大小的数字与对应的罗马字母依次存到两个数组里,用查表的方式遍历数组,可精简代码量:
class Solution { public String intToRoman(int num) { int values[]=new int[]{1000,900,500,400,100,90,50,40,10,9,5,4,1}; String strs[]=new String[]{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; String str=""; for(int i=0; i<13; i++){ if(num==0) break; int times=num/values[i]; if(times==0) continue; for(int t=0;t<times;t++) { str+=strs[i]; } num=num-(times*values[i]); } return str; } }
相关文章推荐
- leetCode 12.Integer to Roman (整数转罗马数字) 解题思路和方法
- LeetCode 12 整数转罗马数字 python
- LeetCode 13.罗马数字转整数(Java)
- leetcode-java.T013_RomarToInteger 罗马数字转成整数数字
- leetcode-Easy(JAVA)13. 罗马数字转整数
- LeetCode 12 整数转罗马数字(字符串)
- LeetCode 12 Integer to Roman (整数转罗马数字)
- 【leetcode】13. 罗马数字转整数&&100. 相同的树&&101. 对称二叉树(java实现)
- Leetcode 题解|13. 罗马数字转整数-java
- LeetCode 12. 整数转罗马数字 Python
- 【LeetCode-面试算法经典-Java实现】【013-Roman to Integer (罗马数字转成整数)】
- Java&LeetCode 初入门——013. 罗马数字转整数
- leetcode-13-罗马数字转整数(roman to integer)-java
- Leetcode题库-罗马数字转整数(java语言版)
- LeetCode : 12 整数转罗马数字 C++
- leetcode解题之 12&13. Integer to Roman Java版(罗马数字和数字的转换)
- [C++]LeetCode 12: Integer to Roman(将整数转换为罗马数字)
- 力扣(LeetCode 12)整数转罗马数字 python
- leetcode每日一练:整数转换为罗马数字(java)
- Leet Code 12 Integer to Roman - 整数转成罗马数字 - Java