leetcode [14] - Longest Common Prefix

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

If there is no common prefix, return an empty string "".

Example 1:

Input: ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Note:

All given inputs are in lowercase letters a-z.

题目大意:

  输入字符串数组,输出这些字符串的最大公共子串。

理  解 :

  用当前公共子串与其他字符串比较,保留两字符串的最大公共串作为当前公共串。

代  码 C++:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string commonStr;
        int n,i,j,len,lastLen;
        n = strs.size();
        if(n==0) return "";
        commonStr = strs[0];
        len = commonStr.length();
        lastLen = len;
        for(i=1;i<n;++i){
            if(commonStr==" ") return "";
            j = 0;
            while(commonStr[j]==strs[i][j] && commonStr[j]!='\0' && strs[i][j]!='\0'){
                ++j;
            }
            lastLen = j;
            while(j<len){
                commonStr[++j] = ' ';
            }
            commonStr[lastLen] = '\0';
            len = lastLen;
        }
        return commonStr;
    }
};

 

posted @ 2019-05-29 15:45  lpomeloz  阅读(121)  评论(0编辑  收藏  举报