LeetCode -[简单]-14. 最长公共前缀-Java实现

题目描述:

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

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

示例 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;
            
    }
}

点赞