我有一个子字符串数组和一部分字符串。我想检查字符串是否包含mySliceOfSubstrings切片中的任何子字符串。
mySliceOfSubstrings := []string{"hello", "world"}
mySliceOfStringsToCheck := []string{"hello mars", "hey mars"}
是否有下面将循环放入循环的更好方法?
for _, string := range mySliceOfStringsToCheck {
for _, substring := range mySliceOfSubstrings {
result := strings.Contains(string, substring)
}
}
如果我想针对两个不同的子字符串切片检查字符串怎么办?
答案 0 :(得分:0)
除非数据量很大,并且您正在寻找对现有O(N ^ 2)解决方案的算法改进,否则您的代码就可以了。
对于非常大的数据,您可以考虑使用一些更复杂的数据结构。例如,Go提供了https://golang.org/pkg/index/suffixarray软件包,可让您对字符串进行检查,预处理,然后在对数时间内执行子字符串查找。