14. Longest Common Prefix 간단한 질문이지만 코드를 줄이기 위한 팁

2717 단어 shua
Write a function to find the longest common prefix string amongst an array of strings.
class Solution {
public:
    string longestCommonPrefix(vector& strs) {
        string res;
        int h = strs.size(); 
        if(h == 0) return res;
        if(h == 1) return strs[0];
        int i; 
        for(i = 0; i < strs[0].size() ; i++){
            char first;
            bool flag = false;
            first = strs[0][i];//(i > 0 && strs[i][idx] != strs[i-1][idx])             
            for(int r = 1; r < h; r++){
                if(i >= strs[0].size() || strs[r][i] != first){//    ,                
                    flag = true;
                    break;
                }
            }
            if(flag) break;
            else res.push_back(strs[0][i]);
        }
        
        return res; 
    }
};
간소화된 코드가 이렇게 짧고 간단할 수 있다니!다음과 같습니다.
class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string prefix = "";
        for(int idx=0; strs.size()>0; prefix+=strs[0][idx], idx++)
            for(int i=0; iif(idx >= strs[i].size() ||(i > 0 && strs[i][idx] != strs[i-1][idx]))
                    return prefix;
        return prefix;
    }
};

좋은 웹페이지 즐겨찾기