题解 | #最长公共前缀#

最长公共前缀

http://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

解题思路:

  1. 判断极端情况,strs==null || strs=="",直接返回""
  2. 直接用strs中的第一个字符串作为参照即可,循环比对剩余字符串每个字符,相等即加入定义的前缀字符串,因为公共前缀就是每个字符串前缀中相等的字符构成的。
  3. 如果比较到第一个字符的索引i等于后面某个字符串的长度了,就表示最少有一个字符串不满足了,后面就不用比较了,或者是比较到某个字符串的第i个字符和第一个字符串第i个字符不相等,也不用比较了,直接返回即可。

Java AC code:

import java.util.*;


public class Solution {
    /**
     * 
     * @param strs string字符串一维数组 
     * @return string字符串
     */
    public String longestCommonPrefix (String[] strs) {
        // write code here
        if (strs == null || strs.length == 0) return "";
        StringBuilder sb = new StringBuilder();
        int l = strs.length;
        for(int i = 0; i < strs[0].length(); i++) {
            for(int j = 1; j < l; j++) {
                if (i == strs[j].length() || strs[0].charAt(i) != strs[j].charAt(i)) {
                    return sb.toString();
                }
            }
            sb.append(strs[0].charAt(i));
        }
        return sb.toString();
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务