⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcslength.java

📁 LcsLength--java
💻 JAVA
字号:
class LcsLength
{
	public int lcsLength(char []x,char []y,int [][] b) 
	{
		int m=x.length-1;
		int n=y.length-1;
		int [][]c = new int [m+1][n+1];
		for (int i=1;i<=n ;i++ )
			c[i][0]=0;
		for(int i=1;i<=n;i++)
			c[0][i]=0;
		for(int i=1;i<=m;i++)
			for (int j=1;j<=n ;j++ )
			{
				if (x[i]==y[j])
				{
					c[i][j]=c[i-1][j-1]+1;
					b[i][j]=1;
				}
				else
				if (c[i-1][j]>=c[i][j-1])
					{
						c[i][j]=c[i-1][j];
						b[i][j]=2;
					}
					else
					{
						c[i][j]=c[i][j-1];
						b[i][j]=3;
					}
			}
	System.out.println("\nC[i][j]=\n");
	for(int i=1;i<=m;i++)
		{
			for(int j=1;j<=n;j++)
				System.out.print(c[i][j]+"  ");
			System.out.println("\n");
		}
	

	return c[m][n];
	}

	
	public void lcs(int i,int j,char []x, int [][]b )
	{
		if(i==0||j==0) return;
		if (b[i][j]==1)
		{lcs(i-1,j-1,x,b);
		System.out.print(x[i]);
		}
		else if (b[i][j]==2)
				lcs(i-1,j,x,b); else lcs(i,j-1,x,b);
		
	}

	public static void main(String[] args) 
	{
		LcsLength l = new LcsLength();
		char [] X={'#','A','B','C','B','D','A','B'};
		char [] Y={'#','B','D','C','A','B','A'};
		int m = X.length-1;
		int n = Y.length-1;
		int b[][] = new int[m+1][n+1];
		int result=0;
		result = l.lcsLength(X,Y,b);
		l.lcs(m,n,X,b);

		System.out.println("\nb[i][j]\n");
			
		for(int i=1;i<=m;i++)
		{
			for(int j=1;j<=n;j++)
				System.out.print(b[i][j]+"  ");
			System.out.println("\n");
		}

		System.out.println("\nLength = " + result);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -