Statistics

Problem Statement for "LuckySum"

Problem Statement

A lucky number is a positive integer such that each of its digits is a 4 or a 7. A lucky sum is the sum of two (not necessarily distinct) lucky numbers. Cat loves lucky sums!


Cat has a String note. Each character in note is either a digit or a question mark. A number matches note if it can be produced from note by changing each question mark to a single digit. Note that the number produced this way must not have any leading zeros: after the changes, note[0] must be between '1' and '9', inclusive.


Find and return the smallest lucky sum that matches note. If there are no lucky sums that match note, return -1.

Definition

Class:
LuckySum
Method:
construct
Parameters:
String
Returns:
long
Method signature:
long construct(String note)
(be sure your method is public)

Constraints

  • note will contain between 1 and 14 characters, inclusive.
  • Each character of note will be either a digit ('0'-'9') or a question mark ('?').
  • The first character of note will not be '0'.
  • At least one character of note will be '?'.

Examples

  1. "?"

    Returns: 8

    4+4=8, which is the smallest lucky sum.

  2. "?1"

    Returns: 11

    4+7=11

  3. "4?8"

    Returns: 448

    4+444=448

  4. "2??"

    Returns: -1

    The numbers that match this note are the numbers 200 through 299. None of these numbers is a lucky sum.

  5. "??????????????"

    Returns: 11888888888888

  6. "??"

    Returns: 11

  7. "4?"

    Returns: 48

  8. "5?"

    Returns: 51

  9. "5??"

    Returns: 518

  10. "?5?"

    Returns: 151

  11. "1?1"

    Returns: 121

  12. "45?"

    Returns: 451

  13. "1?4"

    Returns: 124

  14. "??4"

    Returns: 124

  15. "9??"

    Returns: 918

  16. "92?"

    Returns: 921

  17. "9?1"

    Returns: 921

  18. "???"

    Returns: 118

  19. "????"

    Returns: 1188

  20. "?????"

    Returns: 11888

  21. "??????"

    Returns: 118888

  22. "???????"

    Returns: 1188888

  23. "????????"

    Returns: 11888888

  24. "?????????"

    Returns: 118888888

  25. "??????????"

    Returns: 1188888888

  26. "???????????"

    Returns: 11888888888

  27. "????????????"

    Returns: 118888888888

  28. "?????????????"

    Returns: 1188888888888

  29. "??????????????"

    Returns: 11888888888888

  30. "?1?2?1?2?1?2?1"

    Returns: 11922192219221

  31. "?555?"

    Returns: 15551

  32. "1?????????????"

    Returns: 11888888888888

  33. "2?????????????"

    Returns: -1

  34. "3?????????????"

    Returns: -1

  35. "4?????????????"

    Returns: 44444444444448

  36. "5?????????????"

    Returns: 51888888888888

  37. "6?????????????"

    Returns: -1

  38. "7?????????????"

    Returns: 74444444444448

  39. "8?????????????"

    Returns: 81888888888888

  40. "9?????????????"

    Returns: 91888888888888

  41. "?0????????????"

    Returns: -1

  42. "?1????????????"

    Returns: 11888888888888

  43. "?2????????????"

    Returns: 12188888888888

  44. "?3????????????"

    Returns: -1

  45. "?4????????????"

    Returns: 14888888888888

  46. "?5????????????"

    Returns: 15188888888888

  47. "?6????????????"

    Returns: -1

  48. "?7????????????"

    Returns: 47444444444448

  49. "?8????????????"

    Returns: 48188888888888

  50. "?9????????????"

    Returns: 49188888888888

  51. "??25?"

    Returns: 12251

  52. "5???"

    Returns: 5188

  53. "???1"

    Returns: 1191

  54. "?448?"

    Returns: 44481

  55. "?1?54"

    Returns: 11954

  56. "?555?"

    Returns: 15551

  57. "77??4"

    Returns: 77454

  58. "45??4"

    Returns: 45194

  59. "447??"

    Returns: 44748

  60. "445??"

    Returns: 44518

  61. "4??"

    Returns: 448

  62. "???54"

    Returns: 11954

  63. "??751"

    Returns: 44751

  64. "??18?"

    Returns: 12188

  65. "?4??8"

    Returns: 14888

  66. "52?22??222?2??"

    Returns: 52222192222218

  67. "?22?22???2?2?9"

    Returns: -1

  68. "?2222?22?22?49"

    Returns: -1

  69. "75?2222???2?49"

    Returns: -1

  70. "?5????2??22?49"

    Returns: -1

  71. "?5222?2?2?224?"

    Returns: 15222222222248

  72. "5?22??2??22?4?"

    Returns: 52221921922248

  73. "?????2?22?2?49"

    Returns: -1

  74. "?2?22??22?2249"

    Returns: -1

  75. "7?2?22??2???2?"

    Returns: 75222219218921

  76. "7???2222?22??5"

    Returns: -1

  77. "752?2222?22?2?"

    Returns: 75222222222221

  78. "75???22????2?5"

    Returns: -1

  79. "7??222?2???2?5"

    Returns: -1

  80. "75222222?2???5"

    Returns: -1

  81. "??77??22222???"

    Returns: 44774522222188

  82. "?777?22?2?22??"

    Returns: 47775222222218

  83. "7777522???2?25"

    Returns: -1

  84. "?777?7?22??2??"

    Returns: 47774752219218

  85. "7?77?7??2??2?9"

    Returns: -1

  86. "777??75?2222??"

    Returns: 77744752222218

  87. "5222?222?22???"

    Returns: 52222222222188

  88. "5???222????225"

    Returns: -1

  89. "52222?2??222?5"

    Returns: -1

  90. "5?22???48?88??"

    Returns: 52221894888888

  91. "????22?4?8888?"

    Returns: 11892224888888

  92. "??22?224?88889"

    Returns: -1

  93. "7?2?22?222?2?5"

    Returns: -1

  94. "?52?2??2?2?2?5"

    Returns: -1

  95. "7?2222?2?222??"

    Returns: 75222222222218

  96. "?522?2??2?2??5"

    Returns: -1

  97. "7?2?2222??22??"

    Returns: 75222222192218

  98. "75?2??22??????"

    Returns: 75221922188888

  99. "?52??2222?22?5"

    Returns: -1

  100. "75?22?????2?25"

    Returns: -1

  101. "?5?2222??2????"

    Returns: 15222221921888

  102. "?5?2???22?????"

    Returns: 15221892218888

  103. "7??2222??222?5"

    Returns: -1

  104. "75222???2????5"

    Returns: -1

  105. "???22???222?25"

    Returns: -1

  106. "?5???22?2?2??5"

    Returns: -1

  107. "??222222222?25"

    Returns: -1

  108. "????2?22222?2?"

    Returns: 11892222222221

  109. "?52?????22?22?"

    Returns: 15218889222221

  110. "?522??22?22?25"

    Returns: -1

  111. "??2222222222??"

    Returns: 12222222222218

  112. "???2?22??222?5"

    Returns: -1

  113. "???22?2?2?222?"

    Returns: 11922222222221

  114. "75?2?2??2?2???"

    Returns: 75222219222188

  115. "??22222?2?2225"

    Returns: -1

  116. "75?2?2????2225"

    Returns: -1

  117. "75?????22?2??5"

    Returns: -1

  118. "7???2?222?2?25"

    Returns: -1

  119. "752?2??22?2?25"

    Returns: -1

  120. "?52?222??22?25"

    Returns: -1

  121. "?5??22?2?2?22?"

    Returns: 15192222222221

  122. "??222?22?2???5"

    Returns: -1

  123. "7?2?222222222?"

    Returns: 75222222222221

  124. "?5?2?2?2?22?25"

    Returns: -1

  125. "752222??????2?"

    Returns: 75222218888921

  126. "752?22??2???2?"

    Returns: 75222219218921

  127. "752?2?2222??25"

    Returns: -1

  128. "??222??22??2??"

    Returns: 12222192219218

  129. "752??2???2222?"

    Returns: 75219218922221

  130. "75???2??2?????"

    Returns: 75189219218888

  131. "75?22?222??225"

    Returns: -1

  132. "????22?2?2222?"

    Returns: 11892222222221

  133. "?????2?2222??5"

    Returns: -1

  134. "?52?22?22?2?2?"

    Returns: 15222222222221

  135. "?5?2???2222225"

    Returns: -1

  136. "475????92?2???"

    Returns: 47518889222188

  137. "4?52548????1??"

    Returns: 44525488889188

  138. "?7?25489?221?5"

    Returns: -1

  139. "7?549?9?52???1"

    Returns: 74549192521891

  140. "??5???92?21??1"

    Returns: 12518892221891

  141. "785??19252?9?1"

    Returns: 78519192521921

  142. "1?2?2?2???1??5"

    Returns: -1

  143. "152???2?2?1??5"

    Returns: -1

  144. "?52??2252219??"

    Returns: 15219225221918

  145. "??7??22?49?55?"

    Returns: 44745222492551

  146. "4??92?2?49?5??"

    Returns: 44492222492518

  147. "44?92?224??5?5"

    Returns: -1

  148. "85??????22225?"

    Returns: 85188889222251

  149. "85????22222???"

    Returns: 85188922222188

  150. "???9?2222?2255"

    Returns: -1

  151. "5??1?249???92?"

    Returns: 51919249188921

  152. "???19?4?2??92?"

    Returns: 11919249218921

  153. "?22192?921???2"

    Returns: -1

  154. "5???2219?2?8??"

    Returns: 51892219221888

  155. "??9?221??2188?"

    Returns: 11922218921888

  156. "51?????9521889"

    Returns: -1

  157. "1??219?2?1???1"

    Returns: 11921922218891

  158. "??92?95???9?51"

    Returns: 11921951889251

  159. "11921??2?19?51"

    Returns: 11921892219251

  160. "??5?549???222?"

    Returns: 12525491892221

  161. "155?5?????2222"

    Returns: -1

  162. "1555??925?2?22"

    Returns: -1

  163. "?5??2??2?2?18?"

    Returns: 15192192222188

  164. "?5?2??9??2?18?"

    Returns: 15221891922188

  165. "5?2224925?2?88"

    Returns: 52222492522188

  166. "???????2????75"

    Returns: -1

  167. "6?15????????5?"

    Returns: -1

  168. "???????1?7?1??"

    Returns: -1

  169. "?9????6?????9?"

    Returns: -1

  170. "??2?2?????????"

    Returns: 12222188888888

  171. "?2?????47?????"

    Returns: -1

  172. "??7??1816?2???"

    Returns: -1

  173. "7?9???53?8????"

    Returns: -1

  174. "??8?1???5???1?"

    Returns: 11891889518918

  175. "4?8????7???1??"

    Returns: -1

  176. "54?4??????????"

    Returns: 54948888888888

  177. "?????????????1"

    Returns: 11888888888891

  178. "8?88?888?88?88"

    Returns: 81888888888888

  179. "???44825?"

    Returns: 444448251

  180. "??????????3212"

    Returns: -1

  181. "888888888888?"

    Returns: 8888888888888

  182. "7?"

    Returns: 78

  183. "?4"

    Returns: 14

  184. "55??55???554??"

    Returns: 55195518955488

  185. "??????6???????"

    Returns: -1

  186. "??1726273?????"

    Returns: -1

  187. "?9999999999999"

    Returns: -1

  188. "????9?9??5????"

    Returns: 11889191951888

  189. "9?"

    Returns: 91

  190. "?9"

    Returns: -1

  191. "?4?77848"

    Returns: 44477848

  192. "4747?8?"

    Returns: 4747481

  193. "1?"

    Returns: 11

  194. "1????9???????8"

    Returns: 11888918888888

  195. "?82"

    Returns: -1

  196. "????4??89?2?1"

    Returns: 1189488892221

  197. "??91?"

    Returns: 11918

  198. "9555555555555?"

    Returns: 95555555555551

  199. "4?18"

    Returns: 4518

  200. "77782?2?222221"

    Returns: 77782222222221

  201. "8888888888888?"

    Returns: 88888888888888

  202. "?????????????9"

    Returns: -1

  203. "7444???225??21"

    Returns: 74444452251921


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: