Finding the length of the longest substring with equal frequency of characters. for example: input : aaaabbb output: 6 (aaabbb) input: abbacdef output: 6 (bacdef) can anyone help me out with any hints or ideas you got?? (Thanks in advance)
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 166 |
2 | maomao90 | 163 |
2 | Um_nik | 163 |
4 | atcoder_official | 161 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | nor | 153 |
9 | Dominater069 | 153 |
Finding the length of the longest substring with equal frequency of characters. for example: input : aaaabbb output: 6 (aaabbb) input: abbacdef output: 6 (bacdef) can anyone help me out with any hints or ideas you got?? (Thanks in advance)
Name |
---|
Binary search on answers For each mid calculate if there is any substring of length mid that have equal frequency of character (can be done in O(n*26) Total time complexity nlogn approx
binary search doesn't work...it's not like if there's an equal frequency substring of length mid, there would always be an equal frequency substring of length mid-1.
Is there only a O(n^2) brute force with prefix sum possible, or do you know of something better of the top of your head?
Try to exploit the fact that if there's such a substring from L to R, the difference arrays of prefix frequency array at (L-1) and R would be same.You could reduce it to O(26 * N * LogN).
(LogN is due to the map)