Statistics

Problem Statement for "StringSquares"

Problem Statement

We call a string a square if it is a concatenation of two equal non-empty strings. All string comparisons in this problem are case sensitive. For example, "aa", "ABAB", and "abcabc" are squares, but "a", "aaa", "ABCabc", and "abcab" are not.

Given a String s, return the number of distinct squares that appear as contiguous substrings of s. For example, in "aaabccabccCC", you can find the squares "aa", "abccabcc", "cc", and "CC", so you would return 4. The squares "aa" and "cc" each appear twice in the string, but they're only counted once because we're only interested in distinct squares.

Definition

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

Constraints

  • s will contain between 0 and 50 characters, inclusive.
  • s will contain only letters ('a'-'z', 'A'-'Z').

Examples

  1. "aaabccabccCC"

    Returns: 4

    The example in the problem statement.

  2. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 21

  3. "cc"

    Returns: 1

  4. "B"

    Returns: 0

  5. "ABCDABCDabcdabcdABCDABCDabcdabcd"

    Returns: 3

  6. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 25

  7. ""

    Returns: 0

  8. "acbbcabcabacbbcabcabacabcbbcabcabacbbcabcabacabcac"

    Returns: 8

  9. "wAqePCePCkqTqePCePCkqThtAqePCePCkqTqePCePCkqThtdgc"

    Returns: 3

  10. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 19

  11. "bbaaaaabbaaaaabbabbbaaaaabbaaaaabbabbbb"

    Returns: 12

  12. "bbbcacababcacabaabcbbcacababcacabaabcaa"

    Returns: 6

  13. "smyHcHcaSyHcHcaSxXImyHcHcaSyHcHcaSxXIht"

    Returns: 3

  14. "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 14

  15. "bbbbaabbaabaabbbaabbaabaabab"

    Returns: 12

  16. "babccbbccbaaaabccbbccbaaaccb"

    Returns: 6

  17. "KNCoVQCoVQlieNCoVQCoVQlieSqb"

    Returns: 2

  18. "aaaaaaaaaaaaaaaaa"

    Returns: 8

  19. "abbbbbabbbbbbabba"

    Returns: 7

  20. "cbbcbcbcbbcbcbcca"

    Returns: 8

  21. "zSBbBbBQSBbBbBQzc"

    Returns: 3

  22. "aaaaaa"

    Returns: 3

  23. "aaaaab"

    Returns: 2

  24. "cbbccc"

    Returns: 2

  25. "CZZgPh"

    Returns: 1

  26. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 24

  27. "aaaaaaabaaaaaaaabaaaaaaaabaaaaaaaabaaaaaaaabaaaa"

    Returns: 22

  28. "ccabcabcaccabcabcaccabcabcaccabcabcaccabcabcacca"

    Returns: 22

  29. "baccaccaabaccaccaabaccaccaabaccaccaabaccaccaabac"

    Returns: 22

  30. "FEEEEEEDFFEEEEEEDFFEEEEEEDFFEEEEEEDFFEEEEEEDFFEE"

    Returns: 22

  31. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 20

  32. "aababbabaababbabaababbabaababbabaababbaba"

    Returns: 22

  33. "ababacccababacccababacccababacccababaccca"

    Returns: 19

  34. "cbabaddccbabaddccbabaddccbabaddccbabaddcc"

    Returns: 19

  35. "FDDDDBCEFDDDDBCEFDDDDBCEFDDDDBCEFDDDDBCEF"

    Returns: 18

  36. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 17

  37. "bbbaaabbbaaabbbaaabbbaaabbbaaabbba"

    Returns: 14

  38. "bbbccbbbbccbbbbccbbbbccbbbbccbbbbc"

    Returns: 15

  39. "cccccccccccccccccccccccccccccccccc"

    Returns: 17

  40. "BEECDBBEECDBBEECDBBEECDBBEECDBBEEC"

    Returns: 14

  41. "aaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 13

  42. "abbaaabbaaabbaaabbaaabbaaab"

    Returns: 12

  43. "cbbbbcbbbbcbbbbcbbbbcbbbbcb"

    Returns: 12

  44. "dccbadccbadccbadccbadccbadc"

    Returns: 11

  45. "DFFFFDFFFFDFFFFDFFFFDFFFFDF"

    Returns: 12

  46. "aaaaaaaaaaaaaaaaaaaa"

    Returns: 10

  47. "aaabaaabaaabaaabaaab"

    Returns: 9

  48. "cbbbcbbbcbbbcbbbcbbb"

    Returns: 9

  49. "caaccaaccaaccaaccaac"

    Returns: 10

  50. "DABEDABEDABEDABEDABE"

    Returns: 8

  51. "aabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaab"

    Returns: 23

  52. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 22

  53. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa"

    Returns: 23

  54. "abcdEabcdEabcdEabcdEabcdEabcdEabcdEabcdEabcdEabc"

    Returns: 20

  55. "aabaabaabaabaabaabaabaabaabaabaabaabaabaabaab"

    Returns: 22

  56. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 21

  57. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ"

    Returns: 22

  58. "abcdEabcdEabcdEabcdEabcdEabcdEabcdEabcdEabcdE"

    Returns: 20

  59. "aabaabaabaabaabaabaabaabaabaabaabaabaabaab"

    Returns: 20

  60. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 19

  61. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa"

    Returns: 20

  62. "abcdEabcdEabcdEabcdEabcdEabcdEabcdEabcdEab"

    Returns: 18

  63. "aabaabaabaabaabaabaabaabaabaabaabaabaab"

    Returns: 19

  64. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 18

  65. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ"

    Returns: 18

  66. "abcdEabcdEabcdEabcdEabcdEabcdEabcdEabcd"

    Returns: 15

  67. "aabaabaabaabaabaabaabaabaabaabaabaab"

    Returns: 17

  68. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 16

  69. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa"

    Returns: 17

  70. "abcdEabcdEabcdEabcdEabcdEabcdEabcdEa"

    Returns: 15

  71. "aabaabaabaabaabaabaabaabaabaabaab"

    Returns: 16

  72. "AaBAaBAaBAaBAaBAaBAaBAaBAaBAaBAaB"

    Returns: 15

  73. "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ"

    Returns: 16

  74. "abcdEabcdEabcdEabcdEabcdEabcdEabc"

    Returns: 14

  75. "acbbcabcabacbbcabcabacabcbbcabcabacbbcabcabacabcac"

    Returns: 8

  76. ""

    Returns: 0

  77. "abb"

    Returns: 1

  78. "aaabccabccCC"

    Returns: 4

  79. "ABCDABCDabcdabcdABCDABCDabcdabcd"

    Returns: 3

  80. "abcdabcdabcdaldfaadfadjfadsjflkjadabcdabadbafavav"

    Returns: 6

  81. "aabbAABBaabbacacAcAcacaceeeee"

    Returns: 10

  82. "aaaawwwwaaaawwwwwwwaaaawwww"

    Returns: 8


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: