我正在寻找一种有效的方法来查找两个字节片之间的前缀相似性。我目前正在使用它,但如果可能的话,我正在寻找一种更有效的方法。
谢谢你。
s1 -> [0 15 136 96 88 76 0 0 0 1]
s2 -> [0 15 136 96 246 1 255 255 255 255]
output -> [0 15 136 96]
func bytesSimilar(s1 []byte, s2 []byte) []byte {
for !bytes.Equal(s1,s2) {
s1 = s1[:len(s1)-1]
s2 = s2[:len(s2)-1]
}
return s1
}
基准代码:
func BenchmarkBytePrefix200(b *testing.B) {
s1 := []byte{0, 15, 136, 96, 88, 76, 0, 0, 0, 1}
s2 := []byte{0, 15, 136, 96, 246, 1, 255, 255, 255, 255}
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
bytePrefix(s1, s2)
}
}
MBP 的结果:
BenchmarkBytePrefix200-8 48738078 29.5 ns/op 0 B/op 0 allocs/op
FFIVE
qq_遁去的一_1
相关分类