比對陣列內每個字串是否有重複字元...
leetcode

Longest Common Prefix

要求比對字串陣列中, 每一個字串中有重複的部分, 並且把重複的部分回傳出去

解題脈絡

就把每個字有重複的地方存下來, 然後再去比對下一個字

寫法

func longestCommonPrefix(strs []string) string {
	if len(strs) == 1 {
		return strs[0]
	}
	temp := ""
	for i := 1; i < len(strs); i++ {
		hay := strs[0]
		if temp != "" {
			hay = temp
			temp = ""
		}

		for k := 0; k < len(hay); k++ {
			if k >= len(strs[i]) {
				continue
			}
			if hay[k] != strs[i][k] {
				break
			}
			temp = fmt.Sprintf("%v%v", temp, string(hay[k]))
		}

		if temp == "" {
			return ""
		}

	}
	return temp
}

心得

自己的解法, 把太多要比對的東西放在記憶體中, 不僅跑得比較慢, 消耗的資源也較多, 看了較佳的解法後, 發現我的思路還是會要把整個陣列跑完為起點, 但是只要第二個字元比對不到, 其實就可以回傳了, 果然還是要多想想…