[C語言] leetCode 簡單篇之14題
阿新 • • 發佈:2018-12-02
題目:
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 “”。
示例 1:
輸入: [“flower”,“flow”,“flight”]
輸出: “fl”
示例 2:
輸入: [“dog”,“racecar”,“car”]
輸出: “”
解釋: 輸入不存在公共字首。
說明:
所有輸入只包含小寫字母 a-z 。
結束
思路:
在字串陣列長度大於1時,拿首個字串與其他字串逐個字元比較,當字元出現不同時,在當前位置結束該字串(添‘\0’).
最終首個字串剩下的就是公共字首。將之返回。
實現
char* longestCommonPrefix(char** strs, int strsSize) { if(strsSize == 0) return "";//當陣列長度為0,即不存在公共字首 if(strsSize == 1) return strs[0];//當陣列長度為1,第一個字串就是公共字首。沒有其他與之比較。 int i; int in ; for( i=1; i<strsSize; i++)//遍歷除首個字串外的其他字串 { for( in=0; in<strlen(strs[0]);in++)//遍歷每個字串的字元,長度以首個字串長度為標準 { if( strs[0][in] != strs[i][in])//如果不相同就在該位置結束字串 { strs[0][in]='\0'; break;//再比較這兩個字串後面的字元就沒有意義了,因此跳出 } } } return strs[0]; }