首页 > 代码库 > Leetcode: Longest Common Prefix

Leetcode: Longest Common Prefix

这道题做的不够顺利,许多次通过,但是居然是卡在一个小问题上了,判断strs是否为空,我想当然地就写成了if(strs == null) return null; 报错

java中null表示还没new出对象,就是还没开辟空间;“”表示new出了对象,但是这个对象装的是空字符串。这里显然是要应对strs[]为空数组的情况,数组为空,但是它已经在堆上开辟了空间。所以判空应该是 if (str.length == 0) return “”;

另外要注意书写风格,=号左右最好空格, if之后也最好空格

 1 public class Solution {
 2     public String longestCommonPrefix(String[] strs) {
 3         String prefix = "";
 4         String pre;
 5         int flag = 0;
 6         if (strs.length == 0) return "";
 7         for (int i = 1; i <= strs[0].length(); i++){
 8             pre = strs[0].substring(0, i);
 9             for (int j=0; j<strs.length; j++){
10                 if (!strs[j].startsWith(pre)){
11                     flag=1;
12                     break;
13                 }
14             }
15             if (flag == 1){
16                 return prefix;
17             } else{
18                 prefix = pre;
19             }
20         }
21         return prefix;
22     }
23 }