代码完全原创,如有纰漏,敬请指正:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
static Map<Integer,Integer> number = new HashMap<Integer,Integer>();
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char a[];
String input = sc.nextLine();
a = input.toCharArray();
check(a);
}
public static int check(char[] in){
StringBuffer s = new StringBuffer();
s=s.append(in, 0, 2);
String sb = s.toString();
if(sb.equals("0v")||sb.equals("0V"))
{
int count = 0;//计有效位
int zero = 0;
boolean z = true;
for(int i=2;i<in.length;i++){
if(in[i]<'0'||in[i]>'8'){
System.out.println(-1);
return -1;
}
if(z&&in[i]=='0'){
zero++;
}else{
z = false;
if((in.length-2-zero)>8){
System.out.println(-1);
return -1;
}
number.put(in.length-2-zero-count,in[i]-'0');
count++;
}
}
v();
return 1;
}else if(sb.equals("0w")||sb.equals("0W")){
int count = 0;//计有效位
int zero = 0;
boolean z = true;
for(int i=2;i<in.length;i++){
if(in[i]<'0'||(in[i]>'9'&&in[i]!='a')&&in[i]!='A'){
System.out.println(-1);
return -1;
}
if(z&&in[i]=='0'){
zero++;
}else{
z = false;
if((in.length-2-zero)>8){
System.out.println(-1);
return -1;
}
if(in[i]>='0'&&in[i]<='9')
number.put(in.length-2-zero-count,in[i]-'0');
else
number.put(in.length-2-zero-count,10);
count++;
}
}
w();
return 1;
}
System.out.println(-1);
return -1;
}
public static void v(){
Long r=0L;
for(Integer i:number.keySet())
{
r = r+(long)Math.pow(9, i-1)*number.get(i);
}
System.out.println(r);
}
public static void w(){
Long r=0L;
for(Integer i:number.keySet())
{
r = r+(long)Math.pow(11, i-1)*number.get(i);
}
System.out.println(r);
}
}