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
x
is an anagram ofy
if it is possible to rearrange the letters inx
to gety
. For example, "bat" and "tab" are anagrams, 'bats' and 'tab' are not. - Two strings
a
andb
are said to be perfect anagrams ifa
andb
are anagrams of each other anda
is not equal tob
.
For example,
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.
Function Description
Complete the function longestPerfectAnagrams
in the editor.
longestPerfectAnagrams
has the following parameter:
string s
: a string
Returns
int
: the length of the longest substring pair which are perfect anagrams or -1 if no such pair exists.
Example 1:
Input: s = "abcacb"
Output: 4
Explanation: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:
Input: s = "cabcab"
Output: 3
Explanation:("cab","bca") , ('abc,'bca'') are two such 3 length substrings
Example 3:
Input: s = "aabbcc"
Output: -1
Explanation:There are no perfect anagram. a & a , b&b , c& c are exctly same.
- 1 ≤ |s| ≤ 10^5
- string
s
contains lowercase English characters only.


input:
output: