package main
import "fmt"
func str2Slice(str string) []rune {
lengh := len(str)
list := make([]rune, lengh)
for i, i2 := range str {
list[i] = i2
}
return list
}
func getLeftFirstSubstringIndex(s1, s2 string, k int) int {
s1List := str2Slice(s1)
s2List := str2Slice(s2)
start := -1
end := -1
for i := 0; i < len(s2List); i++ {
for j := 0; j < len(s1List); j++ {
if j == 0 {
if s2List[i] != s1List[j] {
break
}
}
if s2List[i+j] == s1List[j] {
if start < 0 && end < 0 {
start = i
end = i
} else {
end = i
}
} else {
if end-start != len(s1)-1 {
start = -1
end = -1
}
break
}
}
}
if start < 0 || end < 0 {
return -1
}
return start - k
}
func main() {
var s1, s2 string
fmt.Scan(&s1)
fmt.Scan(&s2)
var k int
fmt.Scan(&k)
fmt.Println(getLeftFirstSubstringIndex(s1, s2, k))
}
【华为OD机试真题】76、 最左侧冗余覆盖子串
最新推荐文章于 2025-02-24 15:54:32 发布