leetcode14 Java

public String longestCommonPrefix(String[] strs) {
       //String temp= strs[0] ; //让第一个与后面一一比较 这是思路
       if(strs.length==0 || strs.equals("")) // 判断第一个元素的情况
       {
           return  "";
       }
        String temp= strs[0] ; //让第一个与后面一一比较 这是思路
       // 后面有三种情况,temp是最长的 第二不是最长的 第三可能有空
           for(int i =1 ; i<strs.length ; i++) //遍历比较
           {
              if(temp.length()<strs[i].length()) // temp是长度最小情况
              {
                  for (int j =0;j<temp.length();j++)
                  {
                      if(temp.charAt(j)!=strs[i].charAt(j))
                      {
                          temp = temp.substring(0,j);
                         
                      }
                  }
              }
              else if(strs[i].length()==0)
              {
                  temp = "";
                  break;
              }
              else{ // temp不是最短的情况
                  for (int j =0;j<strs[i].length();j++)
                  {
                      if(temp.charAt(j)!=strs[i].charAt(j))
                      {
                          temp =strs[i].substring(0,j);
                          break;
                      }
                      if(j == strs[i].length() - 1)
                      {
                          temp = strs[i];
                          
                      }
                  }
              }
           }
       
       return temp;
    }
注意 break 不然会漏 如 aca cba这种情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值