14 最長公共字首

2021-09-12 00:11:58 字數 945 閱讀 7547

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

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

示例 1:

輸入: [「flower」,「flow」,「flight」]

輸出: 「fl」

思路一:

先找到陣列中最短元素,最長公共子串不會超過最短元素

對第乙個元素迭代分割,分割後的子串用於迭代比較是否相同。

class solution 

if(strs.length==1)

int min = strs[0].length();

for(int i=1;istrs[i].length())

min=strs[i].length();

} int i=1;

boolean flag = true;

for (i = 1; i <= min; i++)

} if (flag == false) else

}if (flag == true && i==min)

} return res;

}}

思路二:水平掃瞄

最長公共字首一定是任何兩個字串的公共字首;

因此選取第一字串作為參照字串,與第二個字串求最長字首;

求得最長字首,依次對剩下的字串兩兩取公共子串;

例如[「flower」,「flow」,「flight」]

第一次比較lcp(1,2)=>「flow」;

第二次lcp(1,3) =>「fl」;

如果參照字串為空則返回「」

public static string longestcommonprefix(string strs) 

} return privo;

}

效能分析:遍歷所有字串的所有字元;

思路三:

14 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母a z。思路 兩兩對比,產生最後的公共字串 cla...

14 最長公共字首

分析 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。當字串陣列為空或者字串陣列中有空串時,不存在公共字首 當字串陣列只有乙個元素時,公共字首就是...

14 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。所有輸入只包含小寫字母 a z 隨便選取列表中的乙個字串,我選的就是第乙個str 0 與其他所有字...