Skip to content

Commit d741259

Browse files
authored
Add solution for problem 3043 (#6)
1 parent 770390b commit d741259

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package p3043
2+
3+
import "strconv"
4+
5+
func longestCommonPrefix(arr1 []int, arr2 []int) int {
6+
prefixes := make(map[int]struct{})
7+
8+
for _, num := range arr1 {
9+
for num > 0 {
10+
prefixes[num] = struct{}{}
11+
num /= 10
12+
}
13+
}
14+
15+
ans := 0
16+
17+
for _, num := range arr2 {
18+
for num > 0 {
19+
if _, ok := prefixes[num]; ok {
20+
numStr := strconv.Itoa(num)
21+
if len(numStr) > ans {
22+
ans = len(numStr)
23+
break
24+
}
25+
}
26+
num /= 10
27+
}
28+
}
29+
30+
return ans
31+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package p3043
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestSolution3043(t *testing.T) {
10+
assert.Equal(t, 3, longestCommonPrefix([]int{1, 10, 100}, []int{1000}), "example 1")
11+
assert.Equal(t, 0, longestCommonPrefix([]int{1, 2, 3}, []int{4, 4, 4}), "example 2")
12+
assert.Equal(t, 4, longestCommonPrefix([]int{5655359, 1223}, []int{56554, 789}), "shared multi-digit prefix")
13+
}

0 commit comments

Comments
 (0)