Problem Statement
You are given the
Definition
- Class:
- FixMultiplication
- Method:
- findDigit
- Parameters:
- String
- Returns:
- int
- Method signature:
- int findDigit(String equation)
- (be sure your method is public)
Notes
- A digit is correct if and only if it produces a valid equation in which A, B, C are positive integers with no leading zeros.
Constraints
- equation will have the form "A*B=C".
- Each of A, B, C will be a nonempty string of between 1 and 4 characters, inclusive.
- Each character in each of A, B, C will be either a digit ('0'-'9') or a question mark ('?').
- There will be exactly one question mark in equation.
- The numbers represented by A, B, C will not have leading zeros.
Examples
"42*47=1?74"
Returns: 9
We know that 42*47 = 1974, so the missing digit is 9.
"4?*47=1974"
Returns: 2
The same equation, another missing digit.
"42*?7=1974"
Returns: 4
And again the same equation.
"42*?47=1974"
Returns: -1
This test case has no valid solution. The numbers cannot have leading zeros, so we cannot fill in a zero in front of 47.
"2*12?=247"
Returns: -1
Two times something will never be 247, so this test case has no solution either.
"1*5765=57?6"
Returns: -1
"1*5628=56?9"
Returns: -1
"1?*671=8723"
Returns: 3
"271*1?=2981"
Returns: 1
"9300*1=9?00"
Returns: 3
"?*8421=8421"
Returns: 1
"1*9191=9?92"
Returns: -1
"94?3*1=9423"
Returns: 2
"1*5472=5?73"
Returns: -1
"8850*?=8850"
Returns: 1
"3581*2=71?3"
Returns: -1
"5785*?=5786"
Returns: -1
"1*8728=87?9"
Returns: -1
"6480*1=648?"
Returns: 0
"2*3393=67?7"
Returns: -1
"1*?143=9143"
Returns: 9
"8962*1=8?63"
Returns: -1
"?*8960=8961"
Returns: -1
"?*9959=9960"
Returns: -1
"94?3*1=9454"
Returns: -1
"2?95*2=5790"
Returns: 8
"3*22?0=6720"
Returns: 4
"7?74*1=7275"
Returns: -1
"1*?050=6050"
Returns: 6
"3*2969=?907"
Returns: 8
"86?6*1=8656"
Returns: 5
"?467*3=7401"
Returns: 2
"?206*1=6206"
Returns: 6
"8977*1=8?77"
Returns: 9
"9499*?=9500"
Returns: -1
"9119*?=9120"
Returns: -1
"4962*2=9?24"
Returns: 9
"4*1919=76?6"
Returns: 7
"1*8555=8?56"
Returns: -1
"2*?870=3741"
Returns: -1
"7579*1=?580"
Returns: -1
"?535*1=4536"
Returns: -1
"2*4314=8?28"
Returns: 6
"1*9667=966?"
Returns: 7
"3357*?=3358"
Returns: -1
"8831*1=88?1"
Returns: 3
"6982*1=69?3"
Returns: -1
"7*9?6=6483"
Returns: -1
"1*4747=?748"
Returns: -1
"7217*1=72?7"
Returns: 1
"7860*1=?861"
Returns: -1
"1*85?4=8525"
Returns: -1
"2*2030=?061"
Returns: -1
"1*6980=6?81"
Returns: -1
"20*378=75?1"
Returns: -1
"?*3=27"
Returns: 9
"?*3=9"
Returns: 3
"8*7=?6"
Returns: 5
"?*1=7"
Returns: 7
"9*7=6?"
Returns: 3
"8*6=?8"
Returns: 4
"7*2=?4"
Returns: 1
"2*3=?"
Returns: 6
"2*7=?4"
Returns: 1
"6*?=42"
Returns: 7
"7*2=1?"
Returns: 4
"8*?=48"
Returns: 6
"?*2=16"
Returns: 8
"7*2=?4"
Returns: 1
"4*9=3?"
Returns: 6
"?*9=45"
Returns: 5
"9*1=?"
Returns: 9
"8*1=?"
Returns: 8
"?*9=36"
Returns: 4
"6*2=?2"
Returns: 1
"?2*4=8"
Returns: -1
"2*?4=8"
Returns: -1
"2*4=?8"
Returns: -1
"?3*2=6"
Returns: -1
"3*?2=6"
Returns: -1
"3*2=?6"
Returns: -1
"?3*9=27"
Returns: -1
"3*?9=27"
Returns: -1
"3*9=?27"
Returns: -1
"?3*3=9"
Returns: -1
"3*?3=9"
Returns: -1
"3*3=?9"
Returns: -1
"?2*2=4"
Returns: -1
"2*?2=4"
Returns: -1
"2*2=?4"
Returns: -1
"2064*9652=645?"
Returns: -1
"5707*199?=6794"
Returns: -1
"3598*5684=?477"
Returns: -1
"514?*1670=587"
Returns: -1
"9?61*2220=5411"
Returns: -1
"5232*702?=8294"
Returns: -1
"9382*577?=8542"
Returns: -1
"6972*7195=?145"
Returns: -1
"676?*8039=372"
Returns: -1
"5349*8?4=9825"
Returns: -1
"1?57*7195=9549"
Returns: -1
"1578*5484=7?63"
Returns: -1
"967*5468=3?72"
Returns: -1
"6698*76?1=8487"
Returns: -1
"846?*1959=3760"
Returns: -1
"433*8?47=8087"
Returns: -1
"2?27*2685=4737"
Returns: -1
"?70*9907=4894"
Returns: -1
"104*4?98=5648"
Returns: -1
"6074*21?0=3317"
Returns: -1
"46*9=4?4"
Returns: 1
"71*59=418?"
Returns: 9
"44*33=14?2"
Returns: 5
"50*51=255?"
Returns: 0
"?*54=324"
Returns: 6
"14*1=1?"
Returns: 4
"62*93=57?6"
Returns: 6
"2*4?=82"
Returns: 1
"30*31=93?"
Returns: 0
"66*46=3?36"
Returns: 0
"31*5=?55"
Returns: 1
"92*89=818?"
Returns: 8
"44*72=316?"
Returns: 8
"98*?6=2548"
Returns: 2
"94*5=?70"
Returns: 4
"13*47=?11"
Returns: 6
"66*7?=4620"
Returns: 0
"13*?4=1092"
Returns: 8
"90*?3=3870"
Returns: 4
"6?*96=5856"
Returns: 1
"99*54=534?"
Returns: 6
"46*8?=4002"
Returns: 7
"99*31=30?9"
Returns: 6
"34*46=15?4"
Returns: 6
"73*6=43?"
Returns: 8
"40*73=?920"
Returns: 2
"34*94=31?6"
Returns: 9
"2?*78=2262"
Returns: 9
"81*27=?187"
Returns: 2
"63*33=207?"
Returns: 9
"72*20=1?40"
Returns: 4
"2*22=?4"
Returns: 4
"9?*11=1078"
Returns: 8
"35*66=231?"
Returns: 0
"70*61=?270"
Returns: 4
"?7*98=4606"
Returns: 4
"78*34=265?"
Returns: 2
"67*87=5?29"
Returns: 8
"?1*82=7462"
Returns: 9
"74*?2=2368"
Returns: 3
"45*56=2?20"
Returns: 5
"2?*17=442"
Returns: 6
"18*94=169?"
Returns: 2
"45*68=?060"
Returns: 3
"14*35=4?0"
Returns: 9
"?*84=84"
Returns: 1
"54*9=?86"
Returns: 4
"?*34=102"
Returns: 3
"18*24=43?"
Returns: 2
"63*26=1?38"
Returns: 6
"1*?1=1"
Returns: -1
"9?*99=990"
Returns: -1
"1?*2=4"
Returns: -1