萌新求助
  • 板块学术版
  • 楼主依言为定
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/10/3 15:45
  • 上次更新2023/11/5 12:09:00
查看原帖
萌新求助
311491
依言为定楼主2020/10/3 15:45

不知为何,各种错误提示

程序:

import java.util.*;
public class Main {
	static int min(int x,int y) {
		if(x>=y)
			return x;
		else
			return y;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int a,b,f[][]=new int[1010][1010];
		String s1,s2;
		a=sc.nextInt();
		s1=sc.next();
		b=sc.nextInt();
		s2=sc.next();
		for(int i=0;i<=b;i++) f[0][i]=i;
		for(int i=0;i<=a;i++) f[i][0]=i;
		for(int i=1;i<=a;i++)
			for(int j=1;j<=b;i++) {
				f[i][j]=min(f[i-1][j]+1,f[i][j-1]+1);
				if(s1.charAt(i)==s2.charAt(j)) f[i][j]=min(f[i][j],f[i-1][j-1]);
				else f[i][j]=min(f[i][j],f[i-1][j-1]+1);
			}
		System.out.print(f[a][b]);
		sc.close();
	}

}

输入:

10 
AGTCTGACGC
11 
AGTAAGTAGGC

输出:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 10
	at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
	at java.base/java.lang.String.charAt(String.java:693)
	at Main.main(Main.java:23)
2020/10/3 15:45
加载中...