Search⌘ K
AI Features

Problem: Substring with Concatenation of All Words

Explore how to solve the problem of finding all starting indices of substrings in a string that are formed by concatenating all words from an array. Learn to use hash tables and a sliding window approach efficiently, including handling word frequency and duplicates. This lesson helps you implement this Java solution with clear steps and analyze its time and space complexity.

Statement

You are given a string s and an array of strings words, where every string in words has the same length.

A concatenated string is formed by taking any permutation of words and concatenating all the strings in that permutation together. In other words, it is a string that contains every element of words exactly in the order defined by some permutation, with no extra characters.

Return a list of all starting indices in s where a substring that is a concatenated string begins. The answer may be returned in any order.

Note: The array words may contain duplicate strings.

Constraints:

  • 11 \leq s.length 104\leq 10^4

  • 11 \leq words.length 5000\leq 5000

  • ...