File tree 1 file changed +10
-9
lines changed
1 file changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -17,15 +17,16 @@ data class Equation(val total: BigInteger, val numbers: List<BigInteger>) {
17
17
private fun canBeMade (allowConcat : Boolean ): Boolean {
18
18
// Memoization here does not significantly improve time.
19
19
fun aux (currTotal : BigInteger = numbers.first(),
20
- remainingNumbers : List <BigInteger > = numbers.drop(1)): Boolean {
21
- if (currTotal > total) return false
22
- if (remainingNumbers.isEmpty()) return currTotal == total
23
-
24
- val nextNumber = remainingNumbers.first()
25
- val nextRemainingNumbers = remainingNumbers.drop(1 )
26
- return aux(currTotal + nextNumber, nextRemainingNumbers) ||
27
- aux(currTotal * nextNumber, nextRemainingNumbers) ||
28
- (allowConcat && aux(" $currTotal$nextNumber " .toBigInteger(), nextRemainingNumbers))
20
+ remainingNumbers : List <BigInteger > = numbers.drop(1)): Boolean = when {
21
+ currTotal > total -> false
22
+ remainingNumbers.isEmpty() -> currTotal == total
23
+ else -> {
24
+ val nextNumber = remainingNumbers.first()
25
+ val nextRemainingNumbers = remainingNumbers.drop(1 )
26
+ aux(currTotal + nextNumber, nextRemainingNumbers) ||
27
+ aux(currTotal * nextNumber, nextRemainingNumbers) ||
28
+ (allowConcat && aux(" $currTotal$nextNumber " .toBigInteger(), nextRemainingNumbers))
29
+ }
29
30
}
30
31
return aux()
31
32
}
You can’t perform that action at this time.
0 commit comments