Statistics

Problem Statement for "SwappingDigits"

Problem Statement

Given is a String num. This String contains the digits of a (possibly large) positive integer. For example, num="1147" represents the integer 1147. The String num will not have any leading zeros.

You are allowed to swap one pair of digits in the given number. In other words, you may choose a pair of distinct indices i and j, and swap the characters num[i] and num[j]. Note that you may also leave the original number unchanged. The new String must again describe a valid positive integer, i.e., it must not have any leading zeros.

Find and return the String that represents the smallest possible integer that can be obtained.

Definition

Class:
SwappingDigits
Method:
minNumber
Parameters:
String
Returns:
String
Method signature:
String minNumber(String num)
(be sure your method is public)

Constraints

  • The length of num will be between 2 and 50, inclusive.
  • Each character of num will be between '0' and '9', inclusive.
  • The first character of num will not be '0'.

Examples

  1. "596"

    Returns: "569"

    You can swap num[1] and num[2] to get the minimum integer.

  2. "93561"

    Returns: "13569"

  3. "5491727514"

    Returns: "1491727554"

  4. "78326141480732117541253865198971"

    Returns: "18326141480732117541253865198977"

  5. "539613437590740162597117122494746412"

    Returns: "139613437590740162597117122494746452"

  6. "36854862076732652850188638348854194974"

    Returns: "16854862076732652850188638348854394974"

  7. "994942081261163258228432722866534327414995"

    Returns: "194942081261163258228432722866534327494995"

  8. "7150583813462791777247915861685"

    Returns: "1150583813462791777247915867685"

  9. "36391617694992986009017818594972540252895687092"

    Returns: "16391617694992986009017838594972540252895687092"

  10. "954236034166845974118864218179215850485036393405"

    Returns: "154236034166845974118864218179295850485036393405"

  11. "45555042365433402465122354810934569"

    Returns: "15555042365433402465122354840934569"

  12. "6483181299987229153917934607933902016"

    Returns: "1483181299987229153917934607933902066"

  13. "462862390464985240311821348406097468"

    Returns: "162862390464985240311824348406097468"

  14. "893492715348101644796813175643932778"

    Returns: "193492715348101644796813875643932778"

  15. "11720376171328422763213753122612211005355347503"

    Returns: "10720376171328422763213753122612211005355347513"

  16. "1297866953311623818166341429500"

    Returns: "1097866953311623818166341429502"

  17. "598451791559881800463605525442188610"

    Returns: "198451791559881800463605525442188650"

  18. "459549922864227144939025468310380476785261"

    Returns: "159549922864227144939025468310380476785264"

  19. "316751704763505536943105571098965"

    Returns: "116751704763505536943105573098965"

  20. "3751871440781599237725612512526693451"

    Returns: "1751871440781599237725612512526693453"

  21. "942960713931942273394094015055851889"

    Returns: "142960713931942273394094015055859889"

  22. "432650343265067761784140107946470397"

    Returns: "132650343265067761784140407946470397"

  23. "46127663559955625889931346652686759562020"

    Returns: "16127663559955625889934346652686759562020"

  24. "838768742511426649075898057176729961960525577989"

    Returns: "138768742511426649075898057176729968960525577989"

  25. "532937600610387101104824918284920899993"

    Returns: "132937600610387101104824958284920899993"

  26. "55009163422707646424166083122005"

    Returns: "15009163422707646424166083522005"

  27. "813568794934025880007557363803364017"

    Returns: "113568794934025880007557363803364087"

  28. "63833913450710484842946353940486700773885276487222"

    Returns: "13833913450760484842946353940486700773885276487222"

  29. "77320125235249335515647334121079293975424046205871"

    Returns: "17320125235249335515647334121079293975424046205877"

  30. "76290819591822658282453103067111489252225189743736"

    Returns: "16290819591822658282453103067111489252225789743736"

  31. "40529018529032856171469378738078974758"

    Returns: "10529018529032856174469378738078974758"

  32. "50764734468352471155877281952502862915"

    Returns: "10764734468352471155877281952502862955"

  33. "6625120826766928550986378221475954046770714594000"

    Returns: "1625120826766928550986378221475954046770764594000"

  34. "110000000000000000000000000000000000000000000000"

    Returns: "100000000000000000000000000000000000000000000001"

  35. "1100000000000000000000000000000000000000000000002"

    Returns: "1000000000000000000000000000000000000000000000012"

  36. "10234"

    Returns: "10234"

    You can leave the original String num unchanged. Note that the result must not contain leading zeros.

  37. "93218910471211292416"

    Returns: "13218910471211292496"

  38. "33333333333333333333478477835743436664644"

    Returns: "33333333333333333333378477835743446664644"

  39. "33333333333333333333444759965754547464896"

    Returns: "33333333333333333333444459965754547467896"

  40. "3333333333333333333339565585969979334859739"

    Returns: "3333333333333333333333565585969979334859799"

  41. "22222222222222222222222225566478683928657877384675"

    Returns: "22222222222222222222222222566478683958657877384675"

  42. "1111111111111111111111638222155878694189493"

    Returns: "1111111111111111111111138222155878694689493"

  43. "11111111111111111111111112387951169272176189485768"

    Returns: "11111111111111111111111111387951169272176289485768"

  44. "333333333333333333333576858996655667763499"

    Returns: "333333333333333333333376858996655667765499"

  45. "111111111111111111111282968942251896891157"

    Returns: "111111111111111111111182968942251896891257"

  46. "33333333333333333333978863799385684344676"

    Returns: "33333333333333333333378863799385684944676"

  47. "1111111111111111111111111551121583579914617455348"

    Returns: "1111111111111111111111111151121583579914657455348"

  48. "222222222222222222222222297873593235779839744389"

    Returns: "222222222222222222222222227873593935779839744389"

  49. "2222222222222222222222224799568743885552894993442"

    Returns: "2222222222222222222222222799568743885552894993444"

  50. "2222222222222222222222228685334629627663642248"

    Returns: "2222222222222222222222222685334629627663642848"

  51. "1111111111111111111111159821798465418189176678"

    Returns: "1111111111111111111111119821798465418189576678"

  52. "111111111111111111111143752377853946629846695"

    Returns: "111111111111111111111123752377853946649846695"

  53. "222222222222222222222222443839763396659933997327"

    Returns: "222222222222222222222222243839763396659933997347"

  54. "33333333333333333333333339678754795693989646484984"

    Returns: "33333333333333333333333333678754795699989646484984"

  55. "3333333333333333333333347733863895848476454449"

    Returns: "3333333333333333333333337733864895848476454449"

  56. "2222222222222222222222226867882774696898476264944"

    Returns: "2222222222222222222222222867882774696898476664944"

  57. "11111111111111111111111113978423362722165426178932"

    Returns: "11111111111111111111111111978423362722165426378932"

  58. "12345678921"

    Returns: "11345678922"

  59. "12364895"

    Returns: "12346895"

  60. "1234325475686798678976867867"

    Returns: "1224335475686798678976867867"

  61. "110"

    Returns: "101"

  62. "1203"

    Returns: "1023"

  63. "1403"

    Returns: "1043"

  64. "1040667"

    Returns: "1004667"

  65. "1023450"

    Returns: "1003452"

  66. "190"

    Returns: "109"

  67. "1101"

    Returns: "1011"

  68. "9199009911"

    Returns: "1199009919"

  69. "1090"

    Returns: "1009"

  70. "120111"

    Returns: "102111"

  71. "110234"

    Returns: "101234"

  72. "1520"

    Returns: "1025"

  73. "120"

    Returns: "102"

  74. "101"

    Returns: "101"

  75. "390"

    Returns: "309"

  76. "10"

    Returns: "10"

  77. "990"

    Returns: "909"

  78. "1205"

    Returns: "1025"

  79. "150"

    Returns: "105"

  80. "21051"

    Returns: "11052"

  81. "12810384765827364534537650"

    Returns: "10810384765827364534537652"

  82. "4321"

    Returns: "1324"

  83. "10234132454134512"

    Returns: "10134132454134522"

  84. "2940"

    Returns: "2049"

  85. "13"

    Returns: "13"

  86. "12304"

    Returns: "10324"

  87. "12210000"

    Returns: "10210002"

  88. "5986"

    Returns: "5689"

  89. "12340"

    Returns: "10342"

  90. "140"

    Returns: "104"

  91. "2304"

    Returns: "2034"

  92. "576"

    Returns: "567"

  93. "11023"

    Returns: "10123"

  94. "10111"

    Returns: "10111"

  95. "10321"

    Returns: "10123"

  96. "5968"

    Returns: "5698"

  97. "1990"

    Returns: "1099"

  98. "330"

    Returns: "303"

  99. "11111132"

    Returns: "11111123"

  100. "321"

    Returns: "123"

  101. "121"

    Returns: "112"

  102. "13218910471211292416"

    Returns: "10218913471211292416"

  103. "120000"

    Returns: "100002"

  104. "670"

    Returns: "607"

  105. "590"

    Returns: "509"

  106. "1230"

    Returns: "1032"

  107. "1404"

    Returns: "1044"

  108. "17000001"

    Returns: "10000071"

  109. "1243"

    Returns: "1234"

  110. "19320"

    Returns: "10329"

  111. "11300"

    Returns: "10301"

  112. "19201"

    Returns: "10291"

  113. "90000003218910471211292416000100100101010100011111"

    Returns: "10000003218910471211292416000100100101010100011119"

  114. "1132"

    Returns: "1123"

  115. "54321"

    Returns: "14325"

  116. "11001001"

    Returns: "10001011"

  117. "12345698"

    Returns: "12345689"

  118. "2220"

    Returns: "2022"

  119. "1210"

    Returns: "1012"

  120. "999999999999999999999999999999999999999999999999"

    Returns: "999999999999999999999999999999999999999999999999"

  121. "3412"

    Returns: "1432"

  122. "2200"

    Returns: "2002"

  123. "110001"

    Returns: "100011"

  124. "1111132"

    Returns: "1111123"

  125. "57906"

    Returns: "50976"

  126. "55596"

    Returns: "55569"

  127. "90000000000000000000000000001000000000000"

    Returns: "10000000000000000000000000009000000000000"

  128. "111110"

    Returns: "101111"

  129. "1191"

    Returns: "1119"

  130. "9990"

    Returns: "9099"

  131. "100"

    Returns: "100"

  132. "12306"

    Returns: "10326"

  133. "549"

    Returns: "459"

  134. "1002000300500"

    Returns: "1000000300502"

  135. "110101"

    Returns: "100111"

  136. "49084"

    Returns: "40984"

  137. "1231"

    Returns: "1132"

  138. "1534321"

    Returns: "1134325"

  139. "5598"

    Returns: "5589"

  140. "191"

    Returns: "119"

  141. "1111130"

    Returns: "1011131"


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: