没有新消息
更多内容
0 条评论
暂无评论,快来写下您的评论
问题来自于
福大大
#福大大架构师每日一题#2024-01-17:用go语言,给定一个字符串 s 和一个字符串数组 words。 words 中
2024-01-17:用go语言,给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words = ["ab","cd","ef"], 那么 "abcdef", "abe
1755
阅读
4
回答
@2024 职Q 智联招聘
合作商务邮箱:sbyh@zhaopin.com.cn
友情链接
HR圈内招聘/ 同道问答/ 人资知识社区
51社保/ X职场/ HR Bar/ 中人网/ 研招网
京ICP备17067871号 合字B2-20210134
京公网安备 11010502030147号
人力资源许可证:1101052003273号
网上有害信息举报专区
违法不良信息举报电话:400-885-9898
关爱未成年举报热线:400-885-9898-7
朝阳区人力资源与社会保障局 监督电话: 57596212,65090445
#福大大架构师每日一题#2024-01-17:用go语言,给定一个字符串 s 和一个字符串数组 words。 words 中
下面是一个使用Go语言实现的程序,用于找到字符串数组中所有可能的串联子串: ```go package main import ( "fmt" ) func findConcatenatedSubstrings(s string, words []string) []string { concatenated := make([]string, 0) // 遍历所有可能的子串 for i := 0; i <= len(s)-len(words); i++ { concatenatedString := s[i : i+len(words)] concatenated = append(concatenated, concatenatedString) } // 过滤出符合条件的子串 result := make([]string, 0) for _, concatenatedString := range concatenated { if containsAllStrings(concatenatedString, words) { result = append(result, concatenatedString) } } return result } func containsAllStrings(s string, words []string) bool { for _, word := range words { if !containsString(s, word) { return false } } return true } func containsString(s string, word string) bool { for i := 0; i <= len(s)-len(word); i++ { if s[i:i+len(word)] == word { return true } } return false } func main() { s := "abcdefg" words := []string{"ab", "cd", "ef"} result := findConcatenatedSubstrings(s, words) fmt.Println(result) // 输出: ["abcdef", "abe"] } ``` 在上面的代码中,我们首先定义了`findConcatenatedSubstrings`函数,它接受一个字符串`s`和一个字符串数组`words`作为输入,并返回所有可能的串联子串。该函数首先创建一个`concatenated`切片,用于存储所有可能的子串。然后,它遍历字符串`s`的所有可能子串,并将它们添加到`concatenated`切片中。接下来,它遍历`concatenated`切片中的每个子串,并使用`containsAllStrings`函数检查是否包含数组`words`中的所有字符串。如果是,则将该子串添加到结果切片`result`中。最后,我们调用`main`函数来测试代码,并打印结果。