14. 最長公共字首、Leetcode的Go實現
阿新 • • 發佈:2021-01-17
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串""
。
示例 1:
輸入:strs = ["flower","flow","flight"] 輸出:"fl"
示例 2:
輸入:strs = ["dog","racecar","car"] 輸出:"" 解釋:輸入不存在公共字首。
提示:
0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
僅由小寫英文字母組成
暴力法
func longestCommonPrefix(strs []string) string { if len(strs)==0 { return "" } if len(strs)==1 { return strs[0] } var i int for i=0; i<len(strs[0]); i++ { for j:=1; j<len(strs); j++ { if i>=len(strs[j]) || strs[0][i] != strs[j][i] { return strs[0][0:i] } } } return strs[0][0:i] }
利用sort函式排序,比較最大的一項和最小的一項
func longestCommonPrefix(strs []string) string { if len(strs)==0 { return "" } if len(strs)==1 { return strs[0] } sort.Strings(strs) first := strs[0] last := strs[len(strs)-1] var i int for i=0; i<len(first)&&i<len(last); i++ { if first[i] != last[i] { return first[:i] } } return first[:i] }