Leetcode Longest Common Prefix 解題報告

這一題真的覺得題目沒有講的很清楚,然後去看了discuss才明白。。。


這道題是求在一個string的array裏,對所有的string而言的公共最長的字符前綴,舉個例子

string0:ab

string1:a

string2:b

那麼結果就是空字符串

string0:abcdef

string1:abcdf

string2:abcc

結果就是abc

我的解法就是對第一個字符串的每一位都去和數組裏後面的每一個字符串比對,當不相等或者是比對的這個字符串已經到了結尾,就直接return答案,代碼也很短,還看到網上博客裏有一種解法是對於字符串進行操作,而不是字符串的位,這樣比較次數會多一些


class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string ans = "";
        if(strs.size()==0)
            return ans;
        else if(strs.size()==1)
            return strs[0];
        for(int pos = 0;pos<strs[0].size();pos++)
        {
            int i = 1;
            for(;i<strs.size();i++)
            {
                if(strs[i].size()<pos||strs[i][pos]!=strs[0][pos])
                    return ans;
            }
            if(i==strs.size())
                ans+=strs[0][pos];
        }
        return ans;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章