题解 | #牛牛的罗马数字转换#
牛牛的罗马数字转换
https://www.nowcoder.com/practice/d1d70a7b06544b99a3da1a58bd44987a?tpId=363&tqId=10623456&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return int整型 */ public int romanToInt (String s) { int sum = 0; int preNum = getValue(s.charAt(0)); for(int i = 1;i<s.length();i++){ int value = getValue(s.charAt(i)); if(value>preNum){ sum-=preNum; }else{ sum+=preNum; } preNum = value; } sum+=preNum; return sum; } public int getValue(Character number) { switch (number) { case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; case 'M': return 1000; default: return 0; } } }
本题知识点分析:
1.字符串
2.数学模拟
本题解题思路分析:
1.比较两个相邻数字的大小,左小右大,做减法,反之做加法
2.最后一位数字肯定做加法
3.返回sum