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
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
"?"
Returns: 8
4+4=8, which is the smallest lucky sum.
"?1"
Returns: 11
4+7=11
"4?8"
Returns: 448
4+444=448
"2??"
Returns: -1
The numbers that match this note are the numbers 200 through 299. None of these numbers is a lucky sum.
"??????????????"
Returns: 11888888888888
"??"
Returns: 11
"4?"
Returns: 48
"5?"
Returns: 51
"5??"
Returns: 518
"?5?"
Returns: 151
"1?1"
Returns: 121
"45?"
Returns: 451
"1?4"
Returns: 124
"??4"
Returns: 124
"9??"
Returns: 918
"92?"
Returns: 921
"9?1"
Returns: 921
"???"
Returns: 118
"????"
Returns: 1188
"?????"
Returns: 11888
"??????"
Returns: 118888
"???????"
Returns: 1188888
"????????"
Returns: 11888888
"?????????"
Returns: 118888888
"??????????"
Returns: 1188888888
"???????????"
Returns: 11888888888
"????????????"
Returns: 118888888888
"?????????????"
Returns: 1188888888888
"??????????????"
Returns: 11888888888888
"?1?2?1?2?1?2?1"
Returns: 11922192219221
"?555?"
Returns: 15551
"1?????????????"
Returns: 11888888888888
"2?????????????"
Returns: -1
"3?????????????"
Returns: -1
"4?????????????"
Returns: 44444444444448
"5?????????????"
Returns: 51888888888888
"6?????????????"
Returns: -1
"7?????????????"
Returns: 74444444444448
"8?????????????"
Returns: 81888888888888
"9?????????????"
Returns: 91888888888888
"?0????????????"
Returns: -1
"?1????????????"
Returns: 11888888888888
"?2????????????"
Returns: 12188888888888
"?3????????????"
Returns: -1
"?4????????????"
Returns: 14888888888888
"?5????????????"
Returns: 15188888888888
"?6????????????"
Returns: -1
"?7????????????"
Returns: 47444444444448
"?8????????????"
Returns: 48188888888888
"?9????????????"
Returns: 49188888888888
"??25?"
Returns: 12251
"5???"
Returns: 5188
"???1"
Returns: 1191
"?448?"
Returns: 44481
"?1?54"
Returns: 11954
"?555?"
Returns: 15551
"77??4"
Returns: 77454
"45??4"
Returns: 45194
"447??"
Returns: 44748
"445??"
Returns: 44518
"4??"
Returns: 448
"???54"
Returns: 11954
"??751"
Returns: 44751
"??18?"
Returns: 12188
"?4??8"
Returns: 14888
"52?22??222?2??"
Returns: 52222192222218
"?22?22???2?2?9"
Returns: -1
"?2222?22?22?49"
Returns: -1
"75?2222???2?49"
Returns: -1
"?5????2??22?49"
Returns: -1
"?5222?2?2?224?"
Returns: 15222222222248
"5?22??2??22?4?"
Returns: 52221921922248
"?????2?22?2?49"
Returns: -1
"?2?22??22?2249"
Returns: -1
"7?2?22??2???2?"
Returns: 75222219218921
"7???2222?22??5"
Returns: -1
"752?2222?22?2?"
Returns: 75222222222221
"75???22????2?5"
Returns: -1
"7??222?2???2?5"
Returns: -1
"75222222?2???5"
Returns: -1
"??77??22222???"
Returns: 44774522222188
"?777?22?2?22??"
Returns: 47775222222218
"7777522???2?25"
Returns: -1
"?777?7?22??2??"
Returns: 47774752219218
"7?77?7??2??2?9"
Returns: -1
"777??75?2222??"
Returns: 77744752222218
"5222?222?22???"
Returns: 52222222222188
"5???222????225"
Returns: -1
"52222?2??222?5"
Returns: -1
"5?22???48?88??"
Returns: 52221894888888
"????22?4?8888?"
Returns: 11892224888888
"??22?224?88889"
Returns: -1
"7?2?22?222?2?5"
Returns: -1
"?52?2??2?2?2?5"
Returns: -1
"7?2222?2?222??"
Returns: 75222222222218
"?522?2??2?2??5"
Returns: -1
"7?2?2222??22??"
Returns: 75222222192218
"75?2??22??????"
Returns: 75221922188888
"?52??2222?22?5"
Returns: -1
"75?22?????2?25"
Returns: -1
"?5?2222??2????"
Returns: 15222221921888
"?5?2???22?????"
Returns: 15221892218888
"7??2222??222?5"
Returns: -1
"75222???2????5"
Returns: -1
"???22???222?25"
Returns: -1
"?5???22?2?2??5"
Returns: -1
"??222222222?25"
Returns: -1
"????2?22222?2?"
Returns: 11892222222221
"?52?????22?22?"
Returns: 15218889222221
"?522??22?22?25"
Returns: -1
"??2222222222??"
Returns: 12222222222218
"???2?22??222?5"
Returns: -1
"???22?2?2?222?"
Returns: 11922222222221
"75?2?2??2?2???"
Returns: 75222219222188
"??22222?2?2225"
Returns: -1
"75?2?2????2225"
Returns: -1
"75?????22?2??5"
Returns: -1
"7???2?222?2?25"
Returns: -1
"752?2??22?2?25"
Returns: -1
"?52?222??22?25"
Returns: -1
"?5??22?2?2?22?"
Returns: 15192222222221
"??222?22?2???5"
Returns: -1
"7?2?222222222?"
Returns: 75222222222221
"?5?2?2?2?22?25"
Returns: -1
"752222??????2?"
Returns: 75222218888921
"752?22??2???2?"
Returns: 75222219218921
"752?2?2222??25"
Returns: -1
"??222??22??2??"
Returns: 12222192219218
"752??2???2222?"
Returns: 75219218922221
"75???2??2?????"
Returns: 75189219218888
"75?22?222??225"
Returns: -1
"????22?2?2222?"
Returns: 11892222222221
"?????2?2222??5"
Returns: -1
"?52?22?22?2?2?"
Returns: 15222222222221
"?5?2???2222225"
Returns: -1
"475????92?2???"
Returns: 47518889222188
"4?52548????1??"
Returns: 44525488889188
"?7?25489?221?5"
Returns: -1
"7?549?9?52???1"
Returns: 74549192521891
"??5???92?21??1"
Returns: 12518892221891
"785??19252?9?1"
Returns: 78519192521921
"1?2?2?2???1??5"
Returns: -1
"152???2?2?1??5"
Returns: -1
"?52??2252219??"
Returns: 15219225221918
"??7??22?49?55?"
Returns: 44745222492551
"4??92?2?49?5??"
Returns: 44492222492518
"44?92?224??5?5"
Returns: -1
"85??????22225?"
Returns: 85188889222251
"85????22222???"
Returns: 85188922222188
"???9?2222?2255"
Returns: -1
"5??1?249???92?"
Returns: 51919249188921
"???19?4?2??92?"
Returns: 11919249218921
"?22192?921???2"
Returns: -1
"5???2219?2?8??"
Returns: 51892219221888
"??9?221??2188?"
Returns: 11922218921888
"51?????9521889"
Returns: -1
"1??219?2?1???1"
Returns: 11921922218891
"??92?95???9?51"
Returns: 11921951889251
"11921??2?19?51"
Returns: 11921892219251
"??5?549???222?"
Returns: 12525491892221
"155?5?????2222"
Returns: -1
"1555??925?2?22"
Returns: -1
"?5??2??2?2?18?"
Returns: 15192192222188
"?5?2??9??2?18?"
Returns: 15221891922188
"5?2224925?2?88"
Returns: 52222492522188
"???????2????75"
Returns: -1
"6?15????????5?"
Returns: -1
"???????1?7?1??"
Returns: -1
"?9????6?????9?"
Returns: -1
"??2?2?????????"
Returns: 12222188888888
"?2?????47?????"
Returns: -1
"??7??1816?2???"
Returns: -1
"7?9???53?8????"
Returns: -1
"??8?1???5???1?"
Returns: 11891889518918
"4?8????7???1??"
Returns: -1
"54?4??????????"
Returns: 54948888888888
"?????????????1"
Returns: 11888888888891
"8?88?888?88?88"
Returns: 81888888888888
"???44825?"
Returns: 444448251
"??????????3212"
Returns: -1
"888888888888?"
Returns: 8888888888888
"7?"
Returns: 78
"?4"
Returns: 14
"55??55???554??"
Returns: 55195518955488
"??????6???????"
Returns: -1
"??1726273?????"
Returns: -1
"?9999999999999"
Returns: -1
"????9?9??5????"
Returns: 11889191951888
"9?"
Returns: 91
"?9"
Returns: -1
"?4?77848"
Returns: 44477848
"4747?8?"
Returns: 4747481
"1?"
Returns: 11
"1????9???????8"
Returns: 11888918888888
"?82"
Returns: -1
"????4??89?2?1"
Returns: 1189488892221
"??91?"
Returns: 11918
"9555555555555?"
Returns: 95555555555551
"4?18"
Returns: 4518
"77782?2?222221"
Returns: 77782222222221
"8888888888888?"
Returns: 88888888888888
"?????????????9"
Returns: -1
"7444???225??21"
Returns: 74444452251921