題目描述
編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
說明:
所有輸入只包含小寫字母 a-z 。
我的初版解決思路為遍歷陣列,挨個字元進行比較,直到結束。**如下:
//迴圈遍歷,有兩種退出條件: 1,陣列最短元素 2,陣列內string相同位置字元不同
public string longestcommonprefix(string strs)
stringbuilder sb = new stringbuilder();
boolean toend = false;
for(int i=0;;i++)
for(string arr:strs)
toend =true;
break;
}if(sb.length()<=i) else if(sb.charat(i) != arr.charat(i))
}}
return sb.tostring();
}
採用水平掃瞄法進行優化
舉例:
最終優化**如下:
public string longestcommonprefix(string strs)
string prefix = strs[0];
for(int i=0;i**簡潔清晰了很多。
持續精進,加油!
演算法 最長公共字首
編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。class solution 對result擷取公共部分 result result.substr...
演算法 最長公共字首
題目描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 解題 使用分治法求解,找出左側...
演算法 最長公共子串行
好久沒做演算法題了,現在發現自己的演算法能力非常薄弱,所以特意練練,順便做個筆記方便以後檢視。今天整理一下最長公共子串行,最長公共子串行的問題常用於解決字串的相似度,是乙個非常實用的演算法,作為碼農,此演算法是我們的必備基本功。最長公共子串行,是指兩個字串可具有的長度最大的公共的子串行。聽著好像有點...