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:
s1.length, s2.length
s1 and s2 consist of lowercase English letters.
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 already six permutations; for "abcdef", there are hundreds. So, instead of trying to rearrange s1, we look for an efficient alternative.
Two strings are permutations of each other if and only if they contain the same characters the same number of times. For example, "abc" and "bca" are permutations because both have one a, one b, and one c. This means that if we find any substring of s2 that is the same length as s1 and has the same character counts, then that substring must be a permutation of s1. ...
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:
s1.length, s2.length
s1 and s2 consist of lowercase English letters.
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 already six permutations; for "abcdef", there are hundreds. So, instead of trying to rearrange s1, we look for an efficient alternative.
Two strings are permutations of each other if and only if they contain the same characters the same number of times. For example, "abc" and "bca" are permutations because both have one a, one b, and one c. This means that if we find any substring of s2 that is the same length as s1 and has the same character counts, then that substring must be a permutation of s1. ...