aboutsummaryrefslogtreecommitdiffstats
path: root/14/main.go
blob: f22304a482ef98975ab8121fdadf5ce7f00f195b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main

import "fmt"

func longestCommonPrefix(strs []string) string {
	longestPrefix := strs[0]
	for _, element := range strs {
		for index, char := range element {
			if len(longestPrefix) == 0 {
				break
			}
			if index > len(longestPrefix)-1 {
				// longestPrefix = longestPrefix[0 : index-1]
				// fmt.Println("XXX:", longestPrefix)
				break
			}
			if byte(char) != longestPrefix[index] {
				longestPrefix = longestPrefix[0:index]
			}
		}

		if len(longestPrefix) > len(element) {
			longestPrefix = longestPrefix[0:len(element)]
		}
		// fmt.Println(longestPrefix)
	}

	return longestPrefix
}

func main() {
	strs := []string{"flower", "flow", "flight"}
	fmt.Println(longestCommonPrefix(strs))
	strs2 := []string{"dog", "racecar", "car"}
	fmt.Println(longestCommonPrefix(strs2))
	strs3 := []string{"ab", "a"}
	fmt.Println(longestCommonPrefix(strs3))
	strs4 := []string{"aaa", "aa", "aaa"}
	fmt.Println(longestCommonPrefix(strs4))
}