码迷,mamicode.com
首页 > 其他好文 > 详细

Longest Common Prefix

时间:2015-02-13 14:33:08      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

https://oj.leetcode.com/problems/longest-common-prefix/

Write a function to find the longest common prefix string amongst an array of strings.

解题思路:

这题属于比较简单的基本题目。我采用的方法是,从第一位起,比较数组中每个字符串的该位,如果和第一个字符串的该位不同,就立刻返回该位之前的字符串,如果当前位数大于该字符串长度,也立刻返回该字符串。否则继续往后。

下面的方法,是一个two pass的方法,可以先找出最短的那个字符串,省得后面判断长度。

public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0){
            return "";
        }
        
        int minLength = strs[0].length();
        for(String str : strs){
            if(str.length() < minLength){
                minLength = str.length();
            }
        }
        
        for(int i = 0; i < minLength; i++){
            char record = strs[0].charAt(i);
            for(String str : strs){
                if(str.charAt(i) != record){
                    return str.substring(0, i);
                }
            }
        }
        return strs[0].substring(0, minLength);
    }
}

下面是一个one pass的方法,遇到当前i超过自身长度的,直接返回自身即可。

public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0){
            return "";
        }
        
        // int minLength = strs[0].length();
        // for(String str : strs){
        //     if(str.length() < minLength){
        //         minLength = str.length();
        //     }
        // }
        
        for(int i = 0; ; i++){
            if(i > strs[0].length() - 1){
                return strs[0];
            }
            char record = strs[0].charAt(i);
            for(String str : strs){
                if(i > str.length() - 1){
                    return str;
                }
                if(str.charAt(i) != record){
                    return str.substring(0, i);
                }
            }
        }
        // return strs[0].substring(0, minLength);
    }
}

 

Longest Common Prefix

标签:

原文地址:http://www.cnblogs.com/NickyYe/p/4290107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!