[Leetcode] Integer to Roman
生活随笔
收集整理的這篇文章主要介紹了
[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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷1042 乒乓球 解题报告
- 下一篇: H5移动前端性能优化