欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

[Leetcode] Integer to Roman

发布时间:2025/4/14 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [Leetcode] Integer to Roman 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

第三次刷这个题了,这次一次A过!总结起来是利用了小于4000的数字的罗马数字表示上的相对独立性,我们可以只针对正数表示的个位、十位、百位、千位来分别设计计算的策略。

0: return “”

1-3:return相应数字个当前符号

4:返回当前符号+高一级的符号

5:返回高一级符号

6-8:返回高一级符号+相应数量的当前符号

9:当前符号+高两级的符号

上代码:

1 import java.util.*; 2 3 public class Solution { 4 private String getUnit(int digit, String currentNotation, String largerNotation,String largerlargerNotation){ 5 String res = ""; 6 if(digit==0) return ""; 7 if(digit<=3){ 8 for(int i=0;i<digit;i++) res+=currentNotation; 9 }else if(digit==4){ 10 res = currentNotation + largerNotation; 11 }else if(digit<=8){ 12 res = largerNotation; 13 digit = digit - 5; 14 for(int i=0;i<digit;i++) res = res + currentNotation; 15 }else{ 16 res = currentNotation + largerlargerNotation; 17 } 18 return res; 19 } 20 public String intToRoman(int num) { 21 String res = ""; 22 int gewei = num %10; 23 int shiwei = (num/10)%10; 24 int baiwei = (num/10/10)%10; 25 int qianwei = (num/10/10/10)%10; 26 String qianString = getUnit(qianwei,"M","",""); 27 res = res + qianString; 28 String baiString = getUnit(baiwei,"C","D","M"); 29 res = res + baiString; 30 String shiString = getUnit(shiwei,"X","L","C"); 31 res = res + shiString; 32 String geString = getUnit(gewei,"I","V","X"); 33 res = res + geString; 34 return res; 35 } 36 }

 

转载于:https://www.cnblogs.com/deepblueme/p/4752967.html

总结

以上是生活随笔为你收集整理的[Leetcode] Integer to Roman的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。