2986167_ac_640ms_23824k.java
来自「北大大牛代码 1240道题的原代码 超级权威」· Java 代码 · 共 48 行
JAVA
48 行
import java.util.*;
public class Main {
static byte t[] = new byte [16000001];
static int tmp[] = new int [257];
static String str;
static int up;
public static void main(String[] args)
{
Scanner cin = new Scanner (System.in);
int n, nc;
n = cin.nextInt();
nc = cin.nextInt();
str = cin.next();
up = 0;
for(int i = 0; i < tmp.length; i++)
tmp[i] = -1;
solve(n,nc);
}
private static void solve(int n, int nc) {
int i, j;
int len = str.length();
for(i = 0; i < len - n + 1 ; i++)
{
int r = 0;
for(j = i; j < n + i; j++)
r = r * nc + fun(str.charAt(j));
t[r]=1;
}
int re = 0;
for(i=0;i<16000000;i++)if(t[i]==1)re++;
System.out.println(re);
}
private static int fun(char c) {
if(tmp[c]<0)tmp[c] = up++;
return tmp[c];
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?