14.最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

substring(0,length),起始位置0,字符串长度length

思路:

  • 若存在公共前缀,则一定是在任何一个字符串中存在
  • 选取str[0]最为参照
  • str[0].charAt[i]的下标i超出str[j].length,表明str[j]的长度不满足继续搜索最长前缀,则返回
  • str[0].charAt[i]不等于str[j].charAt[i],表明当前元素不匹配,前缀匹配结束,则返回

代码

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
package com.wereash.scut_hot100;

import java.util.Scanner;

/**
* @Author: WereAsh
* @Date:2026-01-18 22:23
**/
public class Solution014 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String[] str=scanner.nextLine().split(",");
for(int i=0;i<str.length;i++){
str[i]=str[i].substring(1,str[i].length()-1);
System.out.print(str[i]+",");
}
System.out.println();
for(int i=0;i<str[0].length();i++){
char temp=str[0].charAt(i);
for(int j=0;j<str.length;j++){
if(i==str[j].length()||temp!=str[j].charAt(i)){
System.out.println(str[0].substring(0,i));
return;
}
}
}
System.out.println(str[0]);
}
}