LeetCode 30题:如何通过子串串联所有单词?

2026-05-17 08:320阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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。

阅读全文
标签:子串