1. 程式人生 > >LeetCode 14. 最長公共字首 Longest Common Prefix(C語言)

LeetCode 14. 最長公共字首 Longest Common Prefix(C語言)

題目描述:

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

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

示例 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]; }