题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:[“flower”,”flow”,”flight”]
输出:[“fl”]
说明:
所有输入只包含小写字母 a-z
。
代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0 || strs[0].equals("")) //字符串数组为0或者第一个数组为空,则返回空
{
return "";
}
String temp = strs[0];
for(int i = 1 ; i < strs.length ; i++) //遍历其他字符串进行比较
{
if(strs[i].length() == 0) //有一个为空,那么就没有最长公共前端
{
return "";
}
else if(strs[i].length() < temp.length()) //当字符串长度比temp要短的情况
{
for (int j = 0; j < strs[i].length(); j++)
{
if (temp.charAt(j) != strs[i].charAt(j)) //当遇到不相同的情况
{
temp = strs[i].substring(0, j); //用substring()可以将0到j的值值给temp,j位置的值不会被包括进去
break;
}
if(j == strs[i].length()-1) //如果都遍历完其中一个字符串还没结束,那么这个最短字符串就是
{
temp = strs[i];
}
}
}
else
{
for(int j = 0;j< temp.length();j++) //当temp的长度最短时
{
if (temp.charAt(j) != strs[i].charAt(j))
{
temp = strs[i].substring(0, j);
break;
}
}
}
}
return temp;
}
}