LeetCode 30题:如何通过子串串联所有单词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1107个文字,预计阅读时间需要5分钟。
30. 连接所有单词的子串 + 知识点:字符串;滑动窗口;哈希表 + 描述:给定一个字符串s和一个长度相同的单词列表words,找出s中由words中所有单词串联而成的子串的起始位置。 + 代码:s +=words + 和一些 + 长度相同的 + 单词 + words。找出 + s + 中 + s + 中 + 由 + words + 中 + 所有 + 单词 + 串联 + 形成的 + 子串 + 的 + 起始 + 位置。
30.串联所有单词的子串题目描述知识点:字符串;滑动窗口;哈希表
给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。
注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。
示例示例 1:
输入:s = "barfoothefoobarman", words = ["foo","bar"]
输出:[0,9]
解释:
从索引 0 和 9 开始的子串分别是 "barfoo" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。
示例 2:
输入:s = "wordgoodgoodgoodbestword", words = ["word","good","best","word"]
输出:[]
示例 3:
输入:s = "barfoofoobarthefoobarman", words = ["bar","foo","the"]
输出:[6,9,12]
解法一:滑动窗口
这其实也是滑动窗口的一道典型题目
找到包含words中单词的子串;要注意到题目中一个条件,words中的单词都是长度相同的,子串其实就可以去想想滑动窗口。
当然也可以直接看word中的长度,然后每次截取这么长的子串,然后统计子串中的单词和个数,形成第二个哈希表,看和word中的哈希表是否相同。这样的话两次for。
本文共计1107个文字,预计阅读时间需要5分钟。
30. 连接所有单词的子串 + 知识点:字符串;滑动窗口;哈希表 + 描述:给定一个字符串s和一个长度相同的单词列表words,找出s中由words中所有单词串联而成的子串的起始位置。 + 代码:s +=words + 和一些 + 长度相同的 + 单词 + words。找出 + s + 中 + s + 中 + 由 + words + 中 + 所有 + 单词 + 串联 + 形成的 + 子串 + 的 + 起始 + 位置。
30.串联所有单词的子串题目描述知识点:字符串;滑动窗口;哈希表
给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。
注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。
示例示例 1:
输入:s = "barfoothefoobarman", words = ["foo","bar"]
输出:[0,9]
解释:
从索引 0 和 9 开始的子串分别是 "barfoo" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。
示例 2:
输入:s = "wordgoodgoodgoodbestword", words = ["word","good","best","word"]
输出:[]
示例 3:
输入:s = "barfoofoobarthefoobarman", words = ["bar","foo","the"]
输出:[6,9,12]
解法一:滑动窗口
这其实也是滑动窗口的一道典型题目
找到包含words中单词的子串;要注意到题目中一个条件,words中的单词都是长度相同的,子串其实就可以去想想滑动窗口。
当然也可以直接看word中的长度,然后每次截取这么长的子串,然后统计子串中的单词和个数,形成第二个哈希表,看和word中的哈希表是否相同。这样的话两次for。

