Search⌘ K
AI Features

Solution: Permutation in String

Explore how to determine if any permutation of string s1 appears as a contiguous substring in s2 using the sliding window technique. Understand and implement a frequency count comparison approach in Go that efficiently checks character matches with linear time complexity and constant space. This lesson helps you master a key string manipulation pattern useful in coding interviews.

Statement

Given two strings, s1 and s2, determine whether any permutation of s1 appears as a contiguous substring within s2. In other words, return TRUE if s2 contains a substring that uses the same characters as s1, with the same frequencies, but possibly in a different order. Otherwise, FALSE.

A permutation of a string is any possible arrangement of all its characters. For example, for the string “ab”, the permutations are: “ab” and “ba”.

Constraints:

  • 11 \leq s1.length, s2.length 104\leq 10^4

  • s1 and s2 consist of lowercase English letters.

Solution

A naive approach would be to generate all possible rearrangements of s1 and check whether any appear in s2. But that would quickly become inefficient for longer strings, because the number of permutations grows extremely fast. For a three-letter string like "abc", there are ...