S2 icon indicating copy to clipboard operation
S2 copied to clipboard

0030. Substring With Concatenation of All Words | LeetCode Cookbook

Open halfrost opened this issue 4 years ago • 1 comments

https://books.halfrost.com/leetcode/ChapterFour/0001~0099/0030.Substring-with-Concatenation-of-All-Words/

halfrost avatar Feb 15 '21 03:02 halfrost

func findSubstring(s string, words []string) []int {
	 wordsLen,wordLen,sLen:=len(words),len(words[0]),len(s)
	 len,res,subWordsMap:= wordsLen*wordLen,[]int{},make(map[string]int)
	 for _,v := range words{
		 subWordsMap[v]++
	 }
	 for i:=0;i<sLen;i++{
	 	subWordsMapTmp := make(map[string]int)
	 	for j:=i;j<i+len && j+wordLen<=sLen;j+=wordLen{
			if _,ok:=subWordsMap[s[j:j+wordLen]];!ok{
				break
			}else{
				subWordsMapTmp[s[j:j+wordLen]]++
			}
		}
		 if isMapEq(subWordsMap,subWordsMapTmp){
		 	res = append(res,i)
		 }
	 }
	 return  res
}
func isMapEq(a,b map[string]int) bool {
	for k:=range a{
		if b[k]!=a[k]{
			return false
		}
	}
	return len(a)==len(b)
}

暴力坚持

hujun2020 avatar Aug 13 '21 02:08 hujun2020