3060141_wa.java
来自「北大大牛代码 1240道题的原代码 超级权威」· Java 代码 · 共 104 行
JAVA
104 行
import java.util.*;
import java.io.*;
import java.math.*;
public class Main
{
static BigInteger nn[] = new BigInteger[257];
private static String solve(String base)
{
int i;
for(i = 0; i < base.length(); i++)
{
if(base.charAt(i)!=' ')
{
base = base.substring(i);
break;
}
}
int cnt = 0;
for(i = base.length()-1; i >= 0; i--)
{
if(base.charAt(i)!=' ')
{
base = base.substring(0,base.length()-cnt);
break;
}
cnt++;
}
return base;
}
public static void main(String[] args) throws IOException
{
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
Scanner input = new Scanner (System.in);
//Scanner cin = new Scanner (new FileInputStream("C.in"));
String base;
String tmp;
char ch;
int i;
base = cin.readLine();
base = solve(base);
for(i = 0; i < base.length(); i++)
{
nn[base.charAt(i)] = BigInteger.valueOf(i);
}
while(true)
{
while((tmp = cin.readLine())!=null)
{
if(tmp.length()==0)
{
break;
}
tmp = solve(tmp);
BigInteger ans = BigInteger.ZERO;
ii: for(i = base.length()-1; i > 0; i--)
{
ans = ans.add(calc(tmp,i+1));
for(int j = 0; j < tmp.length(); j++)
{
if(tmp.charAt(j)==base.charAt(i))
{
break ii;
}
}
}
System.out.println(ans);
}
while(true)
{
if((tmp = cin.readLine())!=null)
{
return ;
}
if(tmp.length()!=0)
{
base = solve(tmp);
for(i = 0; i < base.length(); i++)
{
nn[base.charAt(i)] = BigInteger.valueOf(i);
}
}
}
}
}
private static BigInteger calc(String tmp, int i)
{
BigInteger b = BigInteger.valueOf(i);
BigInteger ret = BigInteger.ZERO;
for(i = 0; i < tmp.length(); i++)
{
ret = ret.multiply(b);
ret = ret.add(nn[tmp.charAt(i)]);
}
return ret;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?