思路:

  1. 先将words中的所有字符串存入map中,统计每个字符串出现的次数;
  2. 因为words中所有字符串长度相同,所以可以将s分割成长度为len(words[0])的子串,依次判断每个子串是否符合要求;
  3. 对于每个子串,将其分割成len(words[0])个字符串,判断这些字符串是否都在map中出现过,并且出现次数是否符合要求;
  4. 如果符合要求,则将该子串的起始下标加入结果中。

代码如下:

使用 golang 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如如果 words = abcdef 那么 abcdef abefcdcdabef cdefabefabcd 和 efcdab 都是串联子串。 acdbef 不是串联子串因为他不是任何 words

原文地址: https://www.cveoy.top/t/topic/bUW8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录