Statistics

Problem Statement for "UnrepeatableWords"

Problem Statement

For a given integer k, we call a string S k-unrepeatable if there is no substring that appears k consecutive times in S.

For example, the string CCABAABAABAC is 4-unrepeatable. But it's not 3-unrepeatable, because the string ABA appears in it 3 times in a row. CCABAABACABA and ABABAABA are examples of 3-unrepeatable strings.

You are given three integers, k, n and allowed. Return the lexicographically smallest k-unrepeatable word of length n that uses only the first allowed uppercase characters of the English alphabet. If no such word exists, return the empty string.

Definition

Class:
UnrepeatableWords
Method:
getWord
Parameters:
int, int, int
Returns:
String
Method signature:
String getWord(int k, int n, int allowed)
(be sure your method is public)

Constraints

  • k will be between 2 and 10, inclusive.
  • n will be between 1 and 50, inclusive.
  • allowed will be between 1 and 26, inclusive.

Examples

  1. 3

    5

    2

    Returns: "AABAA"

    All lexicographically smaller strings of length 5 contain three consecutive occurrences of the letter A, so they aren't 3-unrepeatable.

  2. 3

    5

    1

    Returns: ""

    The only possible string is AAAAA, which is not 3-unrepeatable.

  3. 3

    10

    2

    Returns: "AABAABABAA"

  4. 3

    50

    2

    Returns: "AABAABABAABAABBAABAABABAABAABBAABAABABAABABBAABAAB"

  5. 4

    50

    3

    Returns: "AAABAAABAAABAAACAAABAAABAAABAAACAAABAAABAAABAAACAA"

  6. 4

    50

    26

    Returns: "AAABAAABAAABAAACAAABAAABAAABAAACAAABAAABAAABAAACAA"

  7. 2

    1

    1

    Returns: "A"

  8. 2

    1

    2

    Returns: "A"

  9. 10

    40

    26

    Returns: "AAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAAB"

  10. 10

    40

    2

    Returns: "AAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAAB"

  11. 10

    40

    3

    Returns: "AAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAAB"

  12. 3

    49

    26

    Returns: "AABAABAACAABAABAACAABAABAADAABAABAACAABAABAACAABA"

  13. 10

    1

    26

    Returns: "A"

  14. 7

    48

    26

    Returns: "AAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAA"

  15. 7

    49

    1

    Returns: ""

  16. 7

    50

    2

    Returns: "AAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAABAA"

  17. 7

    50

    3

    Returns: "AAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAACA"

  18. 7

    49

    5

    Returns: "AAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAAC"

  19. 7

    49

    6

    Returns: "AAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAABAAAAAAC"

  20. 3

    2

    1

    Returns: "AA"

  21. 8

    49

    26

    Returns: "AAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABA"

  22. 8

    49

    13

    Returns: "AAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABA"

  23. 8

    50

    8

    Returns: "AAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAA"

  24. 2

    10

    10

    Returns: "ABACABADAB"

  25. 2

    3

    2

    Returns: "ABA"

  26. 2

    4

    2

    Returns: ""

  27. 2

    50

    9

    Returns: "ABACABADABACABAEABACABADABACABAFABACABADABACABAEAB"

  28. 8

    50

    7

    Returns: "AAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAA"

  29. 3

    50

    20

    Returns: "AABAABAACAABAABAACAABAABAADAABAABAACAABAABAACAABAA"

  30. 5

    40

    20

    Returns: "AAAABAAAABAAAABAAAABAAAACAAAABAAAABAAAAB"

  31. 10

    50

    26

    Returns: "AAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAABAAAAAAAAAB"


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: