最长公共字符串后缀
思路分析
代码实现
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int n=sc.nextInt();
if(n==0) break;
String[] strs=new String[n];
for(int i=0;i<n;i++) strs[i]=sc.next();
if (n == 1) {
System.out.println(strs[0]);
continue;
}
int start=-1;
for(int i=1;i<strs.length;i++){
int j=strs[i].length()-1;
int k=strs[0].length()-1;
while(j>=0 && k>=0 && strs[i].charAt(j)==strs[0].charAt(k)){
j--;
k--;
}
start=Math.max(start,k+1);
}
if(start!=-1){
for(int i=start;i<strs[0].length();i++){
System.out.print(strs[0].charAt(i));
}
}
System.out.println();
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
if (n == 0) break;
String[] strs = new String[n];
for (int i = 0; i < n; i++)
strs[i] = sc.next();
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= strs[0].length(); i++) {
boolean flag = true;
char c = strs[0].charAt(strs[0].length() - i);
for (int j = 1; j < n; j++) {
if (i > strs[j].length() || strs[j].charAt(strs[j].length() - i) != c) {
flag = false;
break;
}
}
if (flag) sb.append(c);
else break;
}
sb.reverse();
System.out.println(sb);
}
}
}
同类题型
视频讲解
项目分区导航: 字符串长度 ⬅️ | 05-最长公共字符串后缀 | ➡️ 函数
💬 评论