LeetCode:最长公共前缀

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

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

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。
class Solution {
    public String longestCommonPrefix(String[] strs) { 
       
      int len=strs.length;
        if(strs==null||len==0) // 一定要排除个别情况 这个len=0时 没处理 一直就报错了 
        {
            return ""; 
        }
        if(len==1){
            return strs[0];
        } 
        StringBuilder strBulider=new StringBuilder(); 
        int k=0;
while(true)  
{   
  for(int i=0;i<len-1;i++){           
      
      if((strs[i].length()<k+1)||(strs[i+1].length()<k+1))     //当遍历的下标大于所处的数组的长度 退出返回
          return strBulider.toString();
      if(strs[i].charAt(k)!=strs[i+1].charAt(k))
      {       
          if(k==0)
              return "";
          else{
            return strBulider.toString();
          }
      }
  } 
      strBulider.append(strs[0].charAt(k));       //相同的字母加入 str
      k++;                                        //遍历的下标+1
  } 
}       
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值