最长公共前缀 找到最短串然后一个个字符比较 - lifengyu360/lifengyu_first_git_test GitHub Wiki

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。 示例 1:

输入:strs = ["flower","flow","flight"] 输出:"fl"

class Solution {

public:

string longestCommonPrefix(vector<string>& strs) {
    string result;
    if (strs.size() == 0){
        return result;
    } 
    if (strs.size() == 1){
        return strs[0];
    }
    
    int  min_index = 0;
    //找到最短串
    int min_length = strs[0].length(); 
    for (int i = 1; i < strs.size(); i++) {
        if (strs[i].length() <  min_length) {
            min_index = i;
            min_length = strs[i].length();
        }
    }
    string min;
    min = strs[min_index];
    bool b_eq =false;
    for (int j = 0; j < min.length(); j++){
        b_eq = true;
        for (int i = 0; i < strs.size(); i++){
            if (min[j] != strs[i][j]){
                b_eq = false; 
                break;
            }
        }
        if (b_eq){
            result += min[j];
        }else {
            return result;
        }
    }
    return result;
}

};

⚠️ **GitHub.com Fallback** ⚠️