package main func longestCommonPrefix(strs []string) string { res := make([]rune, 0) // spacial case if len(res) == 0 { return "" } cnt := len(strs[0]) // find minimum length of strings for _, v := range strs { if cnt > len(v) { cnt = len(v) } } // vertical serach // [0 _] [0 _] [0 _] --> [_ 1] [_ 1] [_ 0] --> [0] for i := 0; i < cnt; i++ { curr := strs[0][i] for _, v := range strs { if curr != v[i] { cnt = -1 } } if cnt != -1 { res = append(res, rune(curr)) } } return string(res) }