LeetCode 14. 最長公共字首 Longest Common Prefix(C語言)
阿新 • • 發佈:2018-12-21
題目描述:
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 “”。
示例 1:
輸入: [“flower”,“flow”,“flight”]
輸出: “fl”
示例 2:
輸入: [“dog”,“racecar”,“car”]
輸出: “”
解釋: 輸入不存在公共字首。
說明:
所有輸入只包含小寫字母 a-z 。
題目解答:
方法1:兩層迴圈
該題比較簡單,取第一個單詞的index
位置字元,然後遍歷其它所有單詞該位置是否為該字元,不是則結束,是則繼續下一個位置。注意輸入可能為空。執行時間0ms,程式碼如下。
char* longestCommonPrefix(char** strs, int strsSize) {
if(strsSize == 0) {
char* result = (char*)calloc(1, sizeof(char));
return result;
}
int index = 0, i = 0;
char flag = strs[0][index];
while(flag) {
for(i = 1; i < strsSize; i++) {
if(strs[ i][index] != flag)
break;
}
if(i < strsSize)
break;
flag = strs[0][++index];
}
strs[0][index] = '\0';
return strs[0];
}