1. 程式人生 > 實用技巧 >LeetCode -- 14 最長公共字首

LeetCode -- 14 最長公共字首

題目描述:

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

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

示例 1:

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

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

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

程式碼:

方法:遍歷vector進行比較

class Solution{
    public:
        string longestCommonPrefix(vector<int>& strs){
            
if(!strs.size()){ return ""; // 如果vector容器中沒有元素直接返回空字串 } string Prefix = strs[0]; int count = strs.size(); for(int i = 1 ; i < count ; i ++) { prefix = longest(prefix,strs[i]); //引入了一個比較2個字串的函式,找出最長公共字首
if(!prefix.size()) // 一旦發現為空,直接跳出迴圈即可 { break; } } return prefix; } string longest(const string& str1, const string& str2) { int length = min(str1.size(),str2.size());
int index = 0; while(index < length && str1[index] == str2[index]) { ++index; } return str1.substr(0,index); } };

哈,又到了總結時間

1:學到了str.substr(num,num),這個函式,

裡面有2個引數,第一個引數是從下標為第幾位開始,第二個引數是,從第一個引數開始持續幾個數

百度解釋為:主要功能是複製子字串,要求從指定位置開始,並具有制定長度

舉個栗子:

str = "0,1,2,3,4,5,6,7,8,9"

str1 = str.substr(5,3)

str1 = "5,6,7"

str2 = str.substr(5)

str2 = "5,6,7,8,9"