Statistics

Problem Statement for "EqualSubstrings2"

Problem Statement

You are given a String s. Compute and return the number of ways in which we can choose two identical non-overlapping substrings of s.

(The two substrings must be non-empty. Each substring must be contiguous.)

Definition

Class:
EqualSubstrings2
Method:
get
Parameters:
String
Returns:
int
Method signature:
int get(String s)
(be sure your method is public)

Constraints

  • s will consist only of lowercase English letters ('a'-'z').
  • The length of s will be between 1 and 50, inclusive.

Examples

  1. "aa"

    Returns: 1

    There is exactly one way how to choose two non-empty and non-overlapping substrings. In this case they happen to be equal (both are "a"), so the correct return value is 1.

  2. "abcd"

    Returns: 0

    Regardless how we choose two non-overlapping substrings, they will always differ.

  3. "aba"

    Returns: 1

    One pair: ("a", "a").

  4. "abab"

    Returns: 3

    Three pairs: ("a", "a"), ("b", "b"), ("ab", "ab").

  5. "aaaab"

    Returns: 7

    The 7 ways to select the two equal substrings are shown below. Each row represents one way. The characters 1 and 2 denote characters selected to form the first and second substring, respectively. aaaab ----- 12... 1.2.. 1..2. .12.. .1.2. ..12. 1122. (In the first six ways, the two selected substrings are "a" and "a". In the last way the selected substrings are "aa" and "aa".)

  6. "onetwothreeonetwothree"

    Returns: 86

  7. "icynidbmrrkkbfekrkwhfanyctmcakxodbcveezajnspipbyjk"

    Returns: 52

  8. "gtuqszkamyuqnvruzvtpqvnlqbyufxcpvifkkrmcxomsyka"

    Returns: 43

  9. "sculalhmrqxbujpyuxhrpferomyobaeogaizlvinunadtcqlw"

    Returns: 35

  10. "cnazrmcrwumakipbyrknlauufncwvelvhxcubyqmrjeuyjymle"

    Returns: 52

  11. "qdufzsmnbxeovaloxxxwvojnzyafqkqqrekqdrxlhskciqhg"

    Returns: 44

  12. "imbqcgqgyagishctkckrrezrezppxmyaiwspkmhqetuazztt"

    Returns: 49

  13. "kwsdwblolvnklgyokzygfmzbnmqifrmlcjdiqtkbmbsmjdo"

    Returns: 45

  14. "huoiosslhwoqsikbfdanvpxeprbpreklhtboqtyjwsakxmhw"

    Returns: 42

  15. "bbabbbacabcaaabcaccabbbabcaabcccbacacbbbaacbcbcbab"

    Returns: 555

  16. "aaaaaaabaabcbcaaacbcbababccbacacbababaccbbcababab"

    Returns: 604

  17. "bccaaabbccabcbbbabaacaccbcacabababaaaabaaaabbacba"

    Returns: 574

  18. "aabcaacabbaaabbcaacabbcbbaaacaaabaacacccbbcbbcabac"

    Returns: 615

  19. "bbcabcacbabcacbbaccccabccaaacbbbbcccababcaccaaba"

    Returns: 525

  20. "accabaababbabbacbccaccabbccbbaaaacabbbcaababaaabaa"

    Returns: 605

  21. "cbbabbaaacbbcaccccabbcccbacabbabababaaacacaabcabc"

    Returns: 519

  22. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 10725

  23. "aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbb"

    Returns: 1430

  24. "e"

    Returns: 0

  25. "ej"

    Returns: 0

  26. "rzzzrzzzrrzzzzrrzz"

    Returns: 145

  27. "aaaaaaaa"

    Returns: 50

  28. "dcccd"

    Returns: 4

  29. "aaaaaaa"

    Returns: 34

  30. "aaaabaaaaaaabaaaaaaaaaaaaabaaaaaaaaaaaabaaaaaaaaaa"

    Returns: 3834

  31. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 5950

  32. "aaaaaaaaaaaaaaaaaaaa"

    Returns: 715

  33. "aaaaa"

    Returns: 13

  34. "aaaaaaaaaaadaaaaacaaaaaaaaaabaaaaaaaaaaaaaaa"

    Returns: 2891

  35. "ababab"

    Returns: 10

  36. "kaszzzjdnaaaabkjsdzzzzanzflaaaaaa"

    Returns: 142

  37. "aaaaaaaaaaaaa"

    Returns: 203

  38. "ababababababababababababababababababababababab"

    Returns: 4180

  39. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 2360

  40. "aaaaaab"

    Returns: 22

  41. "aaaaaa"

    Returns: 22

  42. "bbbb"

    Returns: 7

  43. "aaaaaabbbaaabaabaabaaaab"

    Returns: 277


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: