十三_罗马数字转整数

匿名 (未验证) 提交于 2019-12-03 00:18:01

这题转成字符数组后遍历就是了

-----------------------------------------------------------------------------------------------

罗马数字包含以下七种字符:IVXLCDM

字符          数值 I             1 V             5 X             10 L             50 C             100 D             500 M             1000

IIXIIXIIXXVIIXXVII

IIIIIVIX。这个特殊的规则只适用于以下六种情况:

  • IVX
  • XLC
  • CDM

输入:输出: 3

输入:输出: 4

输入:输出: 9

输入:输出: 58 解释: C = 100, L = 50, XXX = 30, III = 3.

输入:输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4.
class Solution {     public int romanToInt(String s) {         		char[] ch = s.toCharArray(); 		int sum = 0; 		for (int i = 0; i < ch.length; i++) { 			switch (ch[i]) { 			case 'I': 				sum += 1; 				break; 			case 'V': 				sum += 5; 				if(i-1>=0&&ch[i-1]=='I') { 					sum=sum-2; 				} 				break; 			case 'X': 				sum += 10; 				if(i-1>=0&&ch[i-1]=='I') { 					sum=sum-2; 				} 				break; 			case 'L': 				sum += 50; 				if(i-1>=0&&ch[i-1]=='X') { 					sum=sum-20; 				} 				break; 			case 'C': 				sum += 100; 				if(i-1>=0&&ch[i-1]=='X') { 					sum=sum-20; 				} 				break; 			case 'D': 				sum += 500; 				if(i-1>=0&&ch[i-1]=='C') { 					sum=sum-200; 				} 				break; 			case 'M': 				sum += 1000; 				if(i-1>=0&&ch[i-1]=='C') { 					sum=sum-200; 				} 				break; 			default: 				break; 			} 		} 		return sum;     } }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!