1. 找出字符串的最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]输出: "fl"示例 2:
输入: [“dog”,“racecar”,“car”]输出: ""解释: 输入不存在公共前缀。说明:
所有输入只包含小写字母 a-z 。
解题思路
当字符串数组的长度为0时,返回空字符串,当字符串数组为1时,返回当前字符串数组strs[0],指定一个公共前缀变量res,并赋值 字符串数组的第一个元素,遍历循环字符串数组,依次与res进行比较,两两找出公共前缀,最终结果就是最终前缀,如果在遍历中出现res为空,或者strs[i]为空,退出循环,直接返回res。
代码实现:
public class Test01{
public static void main(String[] args) {
String[] strs = {"flower","flow","fl ight"};
String test = test(strs);
System.out.println(test);
}
public static String test(String[] strs){
if(strs.length==0){
return "";
}
if(strs.length==1){
return strs[0];
}
//定义一个公共前缀变量,并初始化
String res = strs[0];
//循环遍历字符串数组
for(int i =1;i<strs.length,i++){
String str = strs[i];
if(res==""||str==""){
break; //退出循环
}
//定义一个开始下标
int start=0;
while(start < res.length() && start < str.length() && str.charAt(start) == res.charAt(start)){
start++;
}
res = res.substring(0,start);
}
return res;
}
}