首页 > 学院 > 开发设计 > 正文

LeetCode之路—— Roman to Integer

2019-11-06 08:18:21
字体:
来源:转载
供稿:网友

题目要求:将罗马数字转成整数,1——3999. 思路:先定义各个符号所代表的权重,然后判断是加还是减。 贴上代码:

package leetcode;public class RomantoInteger13 { public static void main(String[] args) { // TODO Auto-generated method stub Solution_RTI solu = new Solution_RTI(); System.out.PRintln(solu.romanToInt("MMMCMXCIX")); }} class Solution_RTI { public int romanToInt(String s) { int nums[]=new int[s.length()]; for(int i=0;i<s.length();i++){ switch (s.charAt(i)){//定义每位的权重 case 'M': nums[i]=1000; break; case 'D': nums[i]=500; break; case 'C': nums[i]=100; break; case 'L': nums[i]=50; break; case 'X' : nums[i]=10; break; case 'V': nums[i]=5; break; case 'I': nums[i]=1; break; } } int sum=0;//用以接受最终结果 for(int i=0;i<nums.length-1;i++){ if(nums[i]<nums[i+1])//左边小于右边则减,否则加 sum-=nums[i]; else sum+=nums[i]; } return sum+nums[nums.length-1];//加上最后一位,若在循环中加咋可能溢出 }}

总结:善于分析!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表