Statistics

Problem Statement for "InverseCollatz"

Problem Statement

Given a positive integer j greater than 1, the corresponding Collatz sequence is produced by repeatedly applying f to j (and continues even after we reach 1). The function f behaves as follows:
             { x/2    if x is even
   f(x)  =   {
             { 3x+1   if x is odd
Suppose someone began with the value y and has started (but not necessarily finished) generating the Collatz sequence. Each time they apply f they write down 'E' or 'O' to denote whether the argument was even or odd, respectively. Given the String s they have written down, you must return a String of the form (quotes for clarity) "ak+b". Here a and b are integers with no extra leading zeros. The returned string must make the following set the collection of all possible numbers that could have begun the sequence:
	P = { ak + b | k >= 0 and ak + b > 1}
If there are multiple possible return values, choose the one with b minimal.

Definition

Class:
InverseCollatz
Method:
getForm
Parameters:
String
Returns:
String
Method signature:
String getForm(String s)
(be sure your method is public)

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • Each character in s will be 'E' or 'O'.
  • An 'O' will never be immediately followed by another 'O' in s.

Examples

  1. "EOEEEOEOEEEOEOEEOEEOEO"

    Returns: "32768k+30138"

  2. "OEEEEOEOEEEOEOEEOEOE"

    Returns: "8192k+4197"

  3. "EOEEEEEEEEOEOEOEOEEEOEE"

    Returns: "131072k+13482"

  4. "EOEOEEOEOEOEEOEEOEEOEEEOEOEEEEOEOEOEEOE"

    Returns: "33554432k+31532726"

  5. "OEOEEEEOEEOEOEEEOEEE"

    Returns: "16384k+6915"

  6. "OEEOEOEOEOEEEEOEEEOEOEEEEEE"

    Returns: "524288k+497513"

  7. "OEEEOEEOEOEOEEEEEEEEOEEEEOEEOEE"

    Returns: "8388608k+7526253"

  8. "EEEEEEOEOEOEOEOEOEOEOEO"

    Returns: "32768k+32704"

  9. "EOEOEEOEEEOEEOEOEEOEEEEEEEEOEEEOEEEEOEE"

    Returns: "536870912k+9580054"

  10. "OEEOEOEEOEOEOEOEOEOEEEE"

    Returns: "16384k+8569"

  11. "EEEEOEEOEEOEOEEEOEOE"

    Returns: "16384k+528"

  12. "OEEOEEOEOEOEEEEEEEEEOEEOEEOEEE"

    Returns: "4194304k+1562209"

  13. "EEOEOEEOEEOEEEEEEEEOEOEOEEEOEEOEOEEOEOEOEOEOEOEOEO"

    Returns: "8589934592k+6324799660"

  14. "EEOEEEEOEOEEEEOEEEEOEEEEEEOEOEEEEEEE"

    Returns: "536870912k+172078484"

  15. "OEEEOEOEEEOEOEOEOEEEOEOEOEEOEOEEO"

    Returns: "2097152k+127197"

  16. "EEOEEEEEEEOEEOEEOEOEEOEOEEEEOEOEE"

    Returns: "16777216k+11823956"

  17. "EEOEEEOEEEEEOEOEEEEEOEOEOEEOEEEEOEOE"

    Returns: "67108864k+9222708"

  18. "OEOEOEOEOEOEOEOEEEOEOEOEOEOEOE"

    Returns: "65536k+56575"

  19. "OEOEOEEEOEOEOEEOEOEOEOEOEEEOEOEOEOEOEEEOEEOEOE"

    Returns: "134217728k+130016567"

  20. "OEEEEOEEOEEEEOEOEOEOEOEEEEOEOEEEEEEOEEEEEEOEE"

    Returns: "8589934592k+1408901381"

  21. "EOEEOEOEEEOEEOEEEEOEOEOEOEOEEOEOEEOEOEEOEEEE"

    Returns: "536870912k+326134066"

  22. "OEOEOEOEEOEOEOEEEOEEEEEOEEEOEOEOEOEEOEE"

    Returns: "33554432k+17798127"

  23. "EOEEOEOEOEEOEEEOEEOEOEOEEOEEEEEOEEEOEOE"

    Returns: "67108864k+3911698"

  24. "OEOEEOEOEEOEOEEEOEOEEOEOEEOEOEOEEEE"

    Returns: "4194304k+1435131"

  25. "EOEEOEOEEEOEOEOEEEEOEOEEEOEEEEOEOE"

    Returns: "8388608k+6722098"

  26. "OEOEEEEEOEOEOEEEOEOEEOEEOEEEEOEEEOEOEE"

    Returns: "67108864k+9070755"

  27. "EEEOEOEEOEOEEOEOEOEEEOEOEOEE"

    Returns: "262144k+63448"

  28. "EEOEEEEEEOEOEEOEOEOEOEOEOEOEOEEEEEEEE"

    Returns: "67108864k+14310996"

  29. "EEOEOEEEOEOEEOEOEOEOEEOEEOEOEOEOEOEO"

    Returns: "4194304k+1770572"

  30. "EEOEEOEOEOEEEEOEEOEOEOEEEEEE"

    Returns: "1048576k+714532"

  31. "EEE"

    Returns: "8k+0"

    The argument was even 3 times in a row, so the original value was a positive multiple of 8.

  32. "OE"

    Returns: "2k+1"

    The initial number had to be odd. After multiplying by 3 and adding 1, the next value will definitely be even.

  33. "OEO"

    Returns: "4k+3"

  34. "EEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEO"

    Returns: "2199023255552k+1014933810256"

  35. "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"

    Returns: "1125899906842624k+0"

  36. "OEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"

    Returns: "562949953421312k+375299968947541"

  37. "OEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOEOE"

    Returns: "33554432k+33554431"

  38. "OEOEEOEEEOEEEEOEEEEEOEEEEEEOEEEEOEEOEEEEEOEEEEEEEE"

    Returns: "1099511627776k+728557408267"

  39. "EOEEEOEEEEOEOEEEEEEOEEEEEEOEOEEOEOEOEOEEEEEEEOEOEE"

    Returns: "137438953472k+110210109978"

  40. "EEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEOEEEEO"

    Returns: "2199023255552k+1014933810256"

  41. "OEOEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEO"

    Returns: "2199023255552k+1343847545059"

  42. "OEEE"

    Returns: "8k+5"

  43. "EEOEOEOEOEOEOEOEOEOEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEO"

    Returns: "2199023255552k+1731857897468"


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: