1006.最长连续字母序列的长度
Description
给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为 “acaccbabb”,那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意程序效率。
注意:变量在程序中直接赋值
String query = “acbac”;
String text = “acaccbabb”;
二维数组,打表做
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import java.util.Scanner;
public class T6 {
/** * @param args */ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s1=sc.nextLine(); String s2=sc.nextLine(); sc.close(); int n=getStrMax(s1,s2); System.out.println(n); }
private static int getStrMax(String s1, String s2) { int n=s1.length(); int m=s2.length();
int[][] data=new int[n+1][m+1]; int max=0; for (int i = 1; i < n+1; i++) { for (int j = 1; j < m+1; j++) { if(s1.charAt(i-1)==s2.charAt(j-1)){ data[i][j]=data[i-1][j-1]+1; }else{ data[i][j]=0; } if(data[i][j]>max){ max=data[i][j]; } } } return max; } }
|