Statistics

Problem Statement for "FindStringHard"

Problem Statement

An antipalindrome is a string which differs from its own reverse at all positions. For instance, "ab", "aabb", "abab", and "abbaab" are antipalindromes, whereas "aaab", "abba", "aababa", "baa", and "a" are not.

A substring is a nonempty contiguous part of a given string. For instance, "aba" is a substring of "aaba" but "aaa" isn't.

Two substrings are considered different if they are located at different positions in the string. For instance, there are two distinct substrings "aba" in the string "ababa".

You are given an int n. Find and return any string with the following properties:

  • Its length is at most 100.
  • Each character is either 'a' or 'b'.
  • The string has exactly n antipalindromic substrings.

Definition

Class:
FindStringHard
Method:
withAntipalindromicSubstrings
Parameters:
int
Returns:
String
Method signature:
String withAntipalindromicSubstrings(int n)
(be sure your method is public)

Notes

  • It can be shown that the answer always exists. If there are multiple solutions, you may print any of them.
  • It is not necessary to minimize the length of the returned string.

Constraints

  • The integer n will be between 0 and 1000, inclusive.

Examples

  1. 3

    Returns: "bbaab"

    The three antipalindromic substrings of "bbaab" are "bbaa", "ba", and "ab".

  2. 8

    Returns: "ababbaab"

    The eight antipalindromic substrings of "ababbaab" are three copies of "ab", two copies of "ba", and one copy each of "abab", "bbaa", and "abbaab".

  3. 139

    Returns: "ababaabbaabbaaabbbaaabbbaaaabbbbaaaabbbbaaaaabbbbbaaaaabbbbbaaaaaabbbbbbaaaaaabbbbbb"

  4. 0

    Returns: "a"

  5. 1

    Returns: "abbb"

  6. 2

    Returns: "abba"

  7. 4

    Returns: "ababb"

  8. 5

    Returns: "abbbaba"

  9. 6

    Returns: "abaaaaabaabbb"

  10. 7

    Returns: "abbabab"

  11. 9

    Returns: "ababbaaabbbbb"

  12. 10

    Returns: "abbabaaabbabb"

  13. 20

    Returns: "ababbaabbbbabaabbbaba"

  14. 25

    Returns: "abababababb"

  15. 150

    Returns: "ababababababababababababbababb"

  16. 73

    Returns: "abababababababaaaaaabaabbabbaabaaab"

  17. 140

    Returns: "abababababababababababaabbabbaa"

  18. 144

    Returns: "ababababababababababababbbb"

  19. 159

    Returns: "ababababababababababababbaababbabbbbbbbbbaa"

  20. 201

    Returns: "abababababababababababababaabbabbabababba"

  21. 222

    Returns: "ababababababababababababababaaaabababa"

  22. 234

    Returns: "abababababababababababababababbaabbaaa"

  23. 266

    Returns: "ababababababababababababababababbaaabaabaabbbbbaa"

  24. 355

    Returns: "ababababababababababababababababababbaabbbaaaabababaabbabaaab"

  25. 391

    Returns: "abababababababababababababababababababaaaaabbbaababaaa"

  26. 402

    Returns: "ababababababababababababababababababababbbbbaa"

  27. 440

    Returns: "ababababababababababababababababababababaababbbabbaaababbaaabab"

  28. 441

    Returns: "ababababababababababababababababababababab"

  29. 442

    Returns: "abababababababababababababababababababababba"

  30. 451

    Returns: "abababababababababababababababababababababbabbababbaaa"

  31. 488

    Returns: "ababababababababababababababababababababababbabbbbbaa"

  32. 489

    Returns: "ababababababababababababababababababababababbbbabaa"

  33. 490

    Returns: "ababababababababababababababababababababababbaaba"

  34. 491

    Returns: "ababababababababababababababababababababababbabbaaabbbb"

  35. 492

    Returns: "ababababababababababababababababababababababbaabaaba"

  36. 493

    Returns: "ababababababababababababababababababababababbabaaaaabbaaaaaa"

  37. 494

    Returns: "abababababababababababababababababababababaaabaaaabbbaaabaabaababababba"

  38. 495

    Returns: "ababababababababababababababababababababababbaaabbbbbbbabbabbbabb"

  39. 496

    Returns: "ababababababababababababababababababababababbbbabaaabaabaaabb"

  40. 497

    Returns: "ababababababababababababababababababababababbbababaabaaab"

  41. 498

    Returns: "ababababababababababababababababababababababbbbbbaaabbbbabbaaabbabb"

  42. 499

    Returns: "ababababababababababababababababababababababbabbaaaaaabaababbbbabbab"

  43. 500

    Returns: "ababababababababababababababababababababababbbbbabababbabbbaa"

  44. 520

    Returns: "ababababababababababababababababababababababaaaaaaaaababbabaaaaaaabbbb"

  45. 545

    Returns: "abababababababababababababababababababababababbababaabaaba"

  46. 548

    Returns: "abababababababababababababababababababababababbbbbaabbabbbbaabaabbbbaabab"

  47. 553

    Returns: "abababababababababababababababababababababababaaaaaaaab"

  48. 565

    Returns: "abababababababababababababababababababababababaabaabbaaaabbabbbbbbaa"

  49. 599

    Returns: "ababababababababababababababababababababababababbabaaabbbbaaababbaabbbbbbabb"

  50. 623

    Returns: "ababababababababababababababababababababababababaabaababbababbabbbbbbbbaaaaaa"

  51. 666

    Returns: "abababababababababababababababababababababababababaabbabbabbbbababbab"

  52. 689

    Returns: "ababababababababababababababababababababababababababbbaabaabaaaabaaababb"

  53. 699

    Returns: "ababababababababababababababababababababababababababbababbbabbbaaababbaaaabba"

  54. 703

    Returns: "ababababababababababababababababababababababababababbaaabababbbabaabbbaaaba"

  55. 730

    Returns: "abababababababababababababababababababababababababababbbba"

  56. 777

    Returns: "abababababababababababababababababababababababababababaaabaaaaabbaaaaababbbbabbabab"

  57. 780

    Returns: "abababababababababababababababababababababababababababaabaaabbbaabbbaababaabbabbb"

  58. 802

    Returns: "ababababababababababababababababababababababababababababbbaaaaaabaaaabbbabbbaaabaa"

  59. 805

    Returns: "ababababababababababababababababababababababababababababbaaaabbbbabbbaaaaaabbbabab"

  60. 842

    Returns: "abababababababababababababababababababababababababababababba"

  61. 845

    Returns: "abababababababababababababababababababababababababababababbaab"

  62. 851

    Returns: "abababababababababababababababababababababababababababababbbabbbaabbbbaabaaaa"

  63. 859

    Returns: "abababababababababababababababababababababababababababababbbaabbbbbabababbaa"

  64. 866

    Returns: "abababababababababababababababababababababababababababababbabbaabaaabaabbbbababbbaabab"

  65. 888

    Returns: "abababababababababababababababababababababababababababababaabaaaaaaabaaababbbbaababaa"

  66. 900

    Returns: "abababababababababababababababababababababababababababababab"

  67. 905

    Returns: "ababababababababababababababababababababababababababababababbabaa"

  68. 920

    Returns: "ababababababababababababababababababababababababababababababbbaaaabbbbbaaabbaabbbba"

  69. 954

    Returns: "ababababababababababababababababababababababababababababababaabbaabbbababbabbabbbaabbba"

  70. 959

    Returns: "ababababababababababababababababababababababababababababababaabbbbaabbbbaababbaaabbbaaba"

  71. 973

    Returns: "abababababababababababababababababababababababababababababababbbabbbaabaabbab"

  72. 990

    Returns: "abababababababababababababababababababababababababababababababbbababbbabaaabaabbbbaaabbabab"

  73. 991

    Returns: "abababababababababababababababababababababababababababababababbaababbabaaabaabbbbaaaabba"

  74. 992

    Returns: "abababababababababababababababababababababababababababababababa"

  75. 993

    Returns: "abababababababababababababababababababababababababababababababaaaaaaab"

  76. 994

    Returns: "abababababababababababababababababababababababababababababababaaabaaaaaaaa"

  77. 995

    Returns: "abababababababababababababababababababababababababababababababbabbaababaabbbaaabbababa"

  78. 996

    Returns: "abababababababababababababababababababababababababababababababaaabbaa"

  79. 997

    Returns: "abababababababababababababababababababababababababababababababaababbb"

  80. 998

    Returns: "abababababababababababababababababababababababababababababababaabbabbb"

  81. 999

    Returns: "abababababababababababababababababababababababababababababababaabbaab"

  82. 1000

    Returns: "abababababababababababababababababababababababababababababababaaaabbbabbabba"

  83. 675

    Returns: "abababababababababababababababababababababababababaaabbabaabbabbabaabaa"

  84. 35

    Returns: "abababaaabbbbbbbabbabaabbaabba"

  85. 77

    Returns: "ababababababababbbbaaaabbbabaa"

  86. 960

    Returns: "ababababababababababababababababababababababababababababababaabbababababbbb"

  87. 322

    Returns: "abababababababababababababababababaaaaabbabbbaabaabbaabaa"


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: