牛牛喜欢玩串联子串游戏。给定一个字符串s和一个字符串数组words,其中words中所有字符串长度相同。s中的串联子串是指一个包含words中所有字符串以任意顺序排列连接起来的子串。 请你编写一个程序,找到s中所有串联子串的开始索引,并以递增序返回答案。
区块链毕设网qklbishe.com为您提供问题的解答
牛牛喜欢玩串联子串游戏。给定一个字符串s和一个字符串数组words,其中words中所有字符串长度相同。s中的串联子串是指一个包含words中所有字符串以任意顺序排列连接起来的子串。
请你编写一个程序,找到s中所有串联子串的开始索引,并以递增序返回答案。
package main import _"fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param words string字符串一维数组 * @return int整型一维数组 */ func findSubstring( s string , words []string ) []int { l,n:=len(words[0]),len(words) cnt:=map[string]int{} for _,s:=range words{ cnt[s]++ } ans:=[]int{} for i:=0;i+l*n<=len(s);i++{ si:=s[i:i+l] if _,has:=cnt[si];has&&check(cnt,s[i:i+l*n],l){ ans=append(ans,i) } } return ans } func check(cnt map[string]int,s string,l int)bool{ red:=map[string]int{} for i:=0;i<len(s);i+=l{ si:=s[i:i+l] red[si]++ } for k,v:=range cnt{ if red[k]!=v{ return false } } return len(cnt)==len(red) }
45:19
以上就是关于问题牛牛喜欢玩串联子串游戏。给定一个字符串s和一个字符串数组words,其中words中所有字符串长度相同。s中的串联子串是指一个包含words中所有字符串以任意顺序排列连接起来的子串。 请你编写一个程序,找到s中所有串联子串的开始索引,并以递增序返回答案。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训