1. 程式人生 > >(LeetCode每日一刷05)最長公共字首

(LeetCode每日一刷05)最長公共字首

題目描述:

編寫一個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串 ""

 

示例:

示例 1:

輸入: ["flower","flow","flight"]
輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。

說明:

所有輸入只包含小寫字母 a-z 。

 

我提交的程式碼:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int vec_size = strs.size();
        if(vec_size == 0)
        {
            return "";
        }
        string result = "";
        int i,j;
        int length = strs[0].size();
        char pre;
        
        if(length == 0)
        {
            return result;
        }
        
        char current;
        for (i = 0; i < length; ++i)
        {
            pre = strs[0][i];
            for (j = 0; j < vec_size; ++j)
            {
                if(strs[j].size() < i + 1)
                {
                    return result;
                }
                current = strs[j][i];
                if(pre != current)
                {
                    
                    return result;
                }
                
            }
            result = result + current;
        }
        return result;
        
    }
};

 

執行用時: 20 ms, 在Longest Common Prefix的C++提交中擊敗了9.59% 的使用者

 

感想:快無語了。本想刷完所有簡單題在回過來深入學習,還是決定刷完10題就每題深入學習吧!