leetcode 13用java写的,循环一直少一个,更改条件就报错,求前辈指点。。。
弱水提沧海 2016-12-14 07:04:44 我的代码如下,罗马数字转换为整型,我的情况是 XCIX应该输出99,我输出的结果是89
.————————————————————————————————————————
package com.hhu.test;
import java.util.Scanner;
public class Solution {
private static char roma[]={'I','V','X','L','C','D','M'};
private static int rs = 0;
public int romanToInt(String s){
int len = s.length();
int b[]= new int[len];
char a[] = s.toCharArray();
for(int i=0;i<s.length();i++){
if(a[i]==roma[0]){
int I = 1;
b[i] = I;
}else if(a[i]==roma[1]){
int V = 5;
b[i] = V;
}else if(a[i]==roma[2]){
int X = 10;
b[i] = X;
}else if(a[i]==roma[3]){
int L = 50;
b[i] = L;
}else if(a[i]==roma[4]){
int C = 100;
b[i] = C;
}else if(a[i]==roma[5]){
int D = 500;
b[i] = D;
}else if(a[i]==roma[6]){
int M = 1000;
b[i] = M;
}
}
for(int i=0;i<s.length();i++){
if(b[i]<b[i+1]){
rs += 0 - b[i];
}else{
rs += b[i];
}
}
return rs;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String s= in.nextLine();
Solution solution = new Solution();
solution.romanToInt(s);
System.out.println("结果为:"+rs);
}
}
求指点不足之处