import java.util.*;
/**
* 最长公共前缀
*/
public class LongestSamePrefix {
public static void main(String[] args) {
List<String> list = new ArrayList<>(); // 集合,用于存储输入的字符串
while(true){ // 循环调用输入方法,直到输入end结束循环
String string = get(); // 赋值
if (string.equals("end")) break; //结束循环
list.add(string);// 添加进数组
}
System.out.println("输入的字符串相同的前缀为:" + solution(list)); // 调用solution方法,得出结果
}
public static String get(){
System.out.println("请输入下一个字符串,或者输入end结束输入:"); //提示
String str = new Scanner(System.in).nextLine(); // 获取输入的字符串
return str; // 返回该字符串
}
public static String solution(List<String> list){ //水平扫描法
String str = list.get(0); // 以第一个字符数作为参照
if (list.size() <= 1) return null;
for (int i = 1; i < list.size(); i++) { //循环,遍历1到最后一个
while (list.get(i).indexOf(str) == -1){ //循环,判断参照物是否属于其部分,不是,则执行下一步
str = str.substring(0,str.length() - 1); // 参照去掉末尾,重新判断
if (str.isEmpty()) return ""; //如果没有相同的部分,直接返回""
}
}
return str;
}
}
java实现“字符串最长公共前缀”
最新推荐文章于 2023-07-11 20:30:12 发布