描述
给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
示例1
输入:["abca","abc","abca","abc","abcc"]
返回值:"abc"
示例2
输入:["abc"]
返回值:“abc"
思路:求最长的公共部分,那么就从每一个字符串的第一个字符开始比较。将这个一维字符串数组想象成一列,依次比较每一个字符串的每一个字符,直到有不相同的字符出现或者到有一个字符串比较完了的情况出现就返回。
如图:
代码及详情如下:
import java.util.*;
public class Solution {
/**
*
* @param strs string字符串一维数组
* @return string字符串
*/
public String longestCommonPrefix (String[] strs) {
//判空操作
if(strs.length==0||strs==null){
return "";
}
//第一个字符串的长度
int length=strs[0].length();
//以第一个字符串里的字符为标准进行比较
for(int index=0;index<length;index++){
//第一个字符串的字符
char str1=strs[0].charAt(index);
//挨个比较
for(int i=1;i<strs.length;i++){
//如果比较到不同的或者已经到了一个字符串的最后一位时就直接返回
if(strs[i].length()==index||str1!=strs[i].charAt(index))
return strs[0].substring(0,index);
}
}
return strs[0];
}
}
总结两个方法:
1、charAt() 方法
用途:返回指定索引处的char值。
语法:public char charAt(int index)
- 索引范围是从0到length() - 1。
- 对于数组索引,序列的第一个char值是在索引为0,索引1的位置,后序依此类推。
2、 substring()方法
用途:截取方法调用者(即str)的从indexStart到indexEnd(包括indexStart,不包括indexEnd;即含头不含尾、或左闭右开区间内的子字符串)。
语法:public String substring(indexStart,indexEnd);
- start是起点索引,end是结束索引