###### tags: `LeetCode`,`Java`,`Easy` # Easy-13. Roman to Integer ### **題目連結:** [**Roman to Integer**](https://leetcode.com/problems/roman-to-integer/) ### **解題方向** * 仔細了解羅馬數字的排列邏輯後,可以先畫在紙上跑一次流程,很快就會想通了! * 13行的if是在判斷目前的i值是否為最後一項,是的話就直接+=進入sum了,因為它後面也沒有東西跟他比大小。 * 15行的else if是判斷目前的值是否小於後面的值,如果成立就讓**後面的值**減去**目前的值**。 * 18行的else就是以上都不符合,就直接累加進去sum。 ### **完整程式碼** ```java= class Solution { public int romanToInt(String s) { HashMap<Character, Integer> romanMap = new HashMap<>(); romanMap.put('I',1); romanMap.put('V',5); romanMap.put('X',10); romanMap.put('L',50); romanMap.put('C',100); romanMap.put('D',500); romanMap.put('M',1000); int sum=0; for(int i=0;i<s.length();i++){ if(i==(s.length()-1)){ sum+=romanMap.get(s.charAt(i)); }else if(romanMap.get(s.charAt(i))<romanMap.get(s.charAt(i+1))){ sum+=romanMap.get(s.charAt(i+1))-romanMap.get(s.charAt(i)); i++; }else{ sum+=romanMap.get(s.charAt(i)); } } return sum; } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up