Statistics

Problem Statement for "EquiDigitNumbers"

Problem Statement

A number x is called equidigit if each digit that appears in the decimal notation of x appears the same number of times. (x must be written with no leading zeroes.)

For example, the numbers 5, 239, 333888 and 566353 are equidigit.

Given a string representing a number n, return the smallest equidigit number that is greater than or equal to n.

Definition

Class:
EquiDigitNumbers
Method:
findNext
Parameters:
String
Returns:
long
Method signature:
long findNext(String n)
(be sure your method is public)

Notes

  • The answer always fits into a 64-bit signed integer.

Constraints

  • n will contain only digits, and will represent an integer between 1 and 10^18, inclusive, with no leading zeros.

Examples

  1. "42"

    Returns: 42

    When given an equidigit number, you should return that same number.

  2. "2008"

    Returns: 2013

    The numbers 2008, 2009, 2010, 2011 and 2012 are not equidigit, and the number 2013 is.

  3. "987654322"

    Returns: 987778899

  4. "1000000000000000000"

    Returns: 1111111111111111111

    The number 1111111111111111111 is equidigit, so the answer always fits into a 64-bit signed integer.

  5. "1"

    Returns: 1

  6. "7"

    Returns: 7

  7. "9"

    Returns: 9

  8. "10"

    Returns: 10

  9. "11"

    Returns: 11

  10. "77"

    Returns: 77

  11. "99"

    Returns: 99

  12. "100"

    Returns: 102

  13. "101"

    Returns: 102

  14. "565"

    Returns: 567

  15. "770"

    Returns: 777

  16. "999"

    Returns: 999

  17. "1000"

    Returns: 1001

  18. "6998"

    Returns: 7007

  19. "10000"

    Returns: 10234

  20. "11239"

    Returns: 12034

  21. "33334"

    Returns: 34012

  22. "100000"

    Returns: 100011

  23. "332233"

    Returns: 332244

  24. "987655"

    Returns: 987789

  25. "6565656"

    Returns: 6570123

  26. "7897654"

    Returns: 7901234

  27. "9876544"

    Returns: 9999999

  28. "10000007"

    Returns: 10000111

  29. "18075655"

    Returns: 18075692

  30. "23871987"

    Returns: 23872378

  31. "34344344"

    Returns: 34344433

  32. "99999000"

    Returns: 99999999

  33. "100000000"

    Returns: 100011222

  34. "566000000"

    Returns: 566000556

  35. "986998868"

    Returns: 987012345

  36. "999888999"

    Returns: 999999999

  37. "1001001111"

    Returns: 1001010011

  38. "2222444444"

    Returns: 2222525555

  39. "3982475615"

    Returns: 3982476015

  40. "5556667777"

    Returns: 5557557777

  41. "8767865999"

    Returns: 8767869009

  42. "10000000000"

    Returns: 11111111111

  43. "79117818325"

    Returns: 88888888888

  44. "88898989898"

    Returns: 99999999999

  45. "555435444334"

    Returns: 555436334466

  46. "666262266266"

    Returns: 666262272777

  47. "975335799754"

    Returns: 975335800789

  48. "998877665555"

    Returns: 998877666789

  49. "1010101010101"

    Returns: 1111111111111

  50. "10101010010101"

    Returns: 10101010010101

  51. "41440000000566"

    Returns: 41441111114444

  52. "57855001234567"

    Returns: 57856001122678

  53. "87128712700000"

    Returns: 87128712900339

  54. "87858000000000"

    Returns: 87859001122579

  55. "555094094988888"

    Returns: 555094096044669

  56. "797870000056600"

    Returns: 797870001118899

  57. "1120000000100000"

    Returns: 1120000112223333

  58. "3974000000010000"

    Returns: 3974001122345579

  59. "7777780000001000"

    Returns: 7777787778888888

  60. "9876543210123456"

    Returns: 9876543223456789

  61. "9998765432101234"

    Returns: 9998766667778889

  62. "9999978654321012"

    Returns: 9999979777777799

  63. "9999999999999999"

    Returns: 9999999999999999

  64. "10000000000000000"

    Returns: 11111111111111111

  65. "34343434343434343"

    Returns: 44444444444444444

  66. "44444444444878778"

    Returns: 55555555555555555

  67. "99999999999999999"

    Returns: 99999999999999999

  68. "100000000000000000"

    Returns: 100000000011111111

  69. "111112222223333333"

    Returns: 111112222224144444

  70. "477472729387456236"

    Returns: 477472742222244477

  71. "477572729387456236"

    Returns: 477572800022445588

  72. "623987154623987154"

    Returns: 623987154623987154

  73. "633463729387456236"

    Returns: 633463729422467799

  74. "912337462988765544"

    Returns: 912337464001255679

  75. "999999999999999999"

    Returns: 999999999999999999

  76. "12345678910"

    Returns: 22222222222

  77. "900230876000003210"

    Returns: 900230877223378899

  78. "111111111111111112"

    Returns: 111111111222222222

  79. "2945678900"

    Returns: 2945680137

  80. "11111111111111112"

    Returns: 22222222222222222

  81. "12341234123412341"

    Returns: 22222222222222222

  82. "119993"

    Returns: 120012

  83. "22559999"

    Returns: 22560056

  84. "928283210923765"

    Returns: 928283211133899

  85. "229994"

    Returns: 230023

  86. "1234567890"

    Returns: 1234567890

  87. "812814"

    Returns: 812821

  88. "90000000000000000"

    Returns: 99999999999999999

  89. "413134337691647105"

    Returns: 413134340001222555

  90. "1234567889"

    Returns: 1234567890


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: