當(dāng)前位置:
首頁(yè) >
[Leetcode] Integer to Roman
發(fā)布時(shí)間:2025/4/14
20
豆豆
生活随笔
收集整理的這篇文章主要介紹了
[Leetcode] Integer to Roman
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第三次刷這個(gè)題了,這次一次A過(guò)!總結(jié)起來(lái)是利用了小于4000的數(shù)字的羅馬數(shù)字表示上的相對(duì)獨(dú)立性,我們可以只針對(duì)正數(shù)表示的個(gè)位、十位、百位、千位來(lái)分別設(shè)計(jì)計(jì)算的策略。
0:?return “”
1-3:return相應(yīng)數(shù)字個(gè)當(dāng)前符號(hào)
4:返回當(dāng)前符號(hào)+高一級(jí)的符號(hào)
5:返回高一級(jí)符號(hào)
6-8:返回高一級(jí)符號(hào)+相應(yīng)數(shù)量的當(dāng)前符號(hào)
9:當(dāng)前符號(hào)+高兩級(jí)的符號(hào)
上代碼:
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 }?
轉(zhuǎn)載于:https://www.cnblogs.com/deepblueme/p/4752967.html
總結(jié)
以上是生活随笔為你收集整理的[Leetcode] Integer to Roman的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 洛谷1042 乒乓球 解题报告
- 下一篇: H5移动前端性能优化