📄 nextarray.java
字号:
/*
姓名:魏然
班级:计算机04-2
学号:040824221
完成日期:2006.11.2
*/
import java.io.*;
import java.util.*;
public class NextArray
{
public static void main(String[] args) throws Exception
{
Boolean b=true; //定义布尔变量
String s1;
while(b)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入待处理的字符串");
int i,j,m;
s1 = br.readLine(); //读取一行输入的数据
int len=s1.length();
char a[]=new char[len]; //定义一个与字符串长度相同的字符数组
int next[]=new int[len]; //定义next数组
s1.getChars(0,len,a,0); //把输入的字符串转换成字符数组
if (s1.equals("finish")) {return;} // 退出循环
else
{ if(s1==null||s1.length()==0) //判断输入的字符串是否为空或者没有长度
{
System.out.println("输入错误,请重新输入");
System.out.println("请输入待处理的字符串");
s1 = br.readLine();
}
else
{
s1.getChars(0,len,a,0); //把输入的字符串转换成字符数组
m=1;
next[0]=0;
j=0;
while(m<len) //求next函数
{
if(j==0||a[m-1]==a[j-1]) {++m;++j;next[m-1]=j;}
else j=next[j-1];
}
System.out.println("您输入字符串的next函数为:");
for(i=0;i<len;i++) {System.out.println(next[i]);} //输出next函数
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -