longestprefix

main
Jason Staten 2 years ago
parent 943c558f8f
commit f4596155b2

@ -0,0 +1,28 @@
package longestprefix
import (
"strings"
)
func LongestCommonPrefix(strs []string) string {
result := ""
if len(strs) == 0 {
return result
}
first := strs[0]
rest := strs[1:]
for i := range first {
prefix := first[:i+1]
for _, s := range rest {
if !strings.HasPrefix(s, prefix) {
return result
}
}
result = prefix
}
return first
}

@ -0,0 +1,52 @@
package longestprefix_test
import (
"testing"
"git.jxs.me/leetgo/longestprefix"
)
func TestEmpty(t *testing.T) {
expected := ""
result := longestprefix.LongestCommonPrefix([]string{})
if expected != result {
t.Errorf("%q != %q", expected, result)
}
}
func TestSingle(t *testing.T) {
expected := "bark"
result := longestprefix.LongestCommonPrefix([]string{
"bark",
})
if expected != result {
t.Errorf("%q != %q", expected, result)
}
}
func TestSimple(t *testing.T) {
expected := "ye"
result := longestprefix.LongestCommonPrefix([]string{
"yes",
"yeet",
})
if expected != result {
t.Errorf("%q != %q", expected, result)
}
}
func TestExample(t *testing.T) {
expected := "fl"
result := longestprefix.LongestCommonPrefix([]string{
"flower",
"flow",
"flight",
})
if expected != result {
t.Errorf("%q != %q", expected, result)
}
}

@ -0,0 +1,25 @@
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: strs = ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Constraints:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] consists of only lowercase English letters.
Loading…
Cancel
Save