How to find the longest common string prefix in an array of strings with Go

1 Answer

0 votes
package main

import (
	"fmt"
	"sort"
)

func longestCommonPrefix(arr []string) string {
	size := len(arr)

	if size == 0 {
		return ""
	}

	if size == 1 {
		return arr[0]
	}

	sort.Strings(arr)

	minLength := min(len(arr[0]), len(arr[size-1]))

	i := 0
	for i < minLength && arr[0][i] == arr[size-1][i] {
		i++
	}

	return arr[0][:i]
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

func main() {
	arr := []string{"cartography", "carburetor", "carbonating", "cartoon"}

	fmt.Println("The longest common prefix:", longestCommonPrefix(arr))
}


/*
run:

The longest common prefix: car

*/

 



answered Aug 29, 2024 by avibootz
...