Longest Perfect Anagrams
Problem statement
Developers at Amazon continuously develop algorithms to ensure the security of users' accounts through strong passwords.
One such algorithm is based upon the concept of perfect anagrams.
- A string
xis an anagram ofyif it is possible to rearrange the letters inxto gety. For example, "bat" and "tab" are anagrams, 'bats' and 'tab' are not. - Two strings
aandbare said to be perfect anagrams ifaandbare anagrams of each other andais not equal tob.
For example,
- Strings "dog" and "god" are anagrams and perfect anagrams.
- Strings "baba" and "baba" are anagrams but not perfect anagrams because the strings are equal.
- Strings "abbac" and "caaba" are not anagrams because they do not contain exactly the same characters.
Given a string s, find the maximum length of two of its substrings that are perfect anagrams. If no such substrings exist, return -1.
Note: A substring is a contiguous subsegment of a string. For example, "xy" is a substring of "xyz" but "xz" is not.
Complete the function longestPerfectAnagrams in the editor.
longestPerfectAnagrams has the following parameter:
string s: a string
int: the length of the longest substring pair which are perfect anagrams or -1 if no such pair exists.
Function
longestPerfectAnagrams(s: String) → intExamples
Example 1
s = "abcacb"return = 4
The string s = "abcacbab",
- Pairs of substrings such as ("ca", "ac"), ("abc", "acb"), ("bca", "acb"), ("bcac", "cacb"), etc. are perfect anagrams.
- Among these, the longest are ("bcac", "cacb").
It can be proven that no two substrings of length greater than 4 in the given string are perfect anagrams. Return 4.
Example 2
s = "cabcab"return = 3("cab","bca") , ('abc,'bca'') are two such 3 length substrings
Example 3
s = "aabbcc"return = -1There are no perfect anagram. a & a , b&b , c& c are exctly same.
Constraints
- 1 ≤ |s| ≤ 10^5
- string
scontains lowercase English characters only.