Easy
Given a positive integer num
, split it into two non-negative integers num1
and num2
such that:
num1
and num2
is a permutation of num
.
num1
and num2
is equal to the number of occurrences of that digit in num
.num1
and num2
can contain leading zeros.Return the minimum possible sum of num1
and num2
.
Notes:
num
does not contain any leading zeros.num1
and num2
may differ from the order of occurrence of num
.Example 1:
Input: num = 4325
Output: 59
Explanation: We can split 4325 so that num1
is 24 and num2 is
35, giving a sum of 59. We can prove that 59 is indeed the minimal possible sum.
Example 2:
Input: num = 687
Output: 75
Explanation: We can split 687 so that num1
is 68 and num2
is 7, which would give an optimal sum of 75.
Constraints:
10 <= num <= 109
public class Solution {
public int splitNum(int number) {
int num1 = 0;
int num2 = 0;
boolean addToOne = true;
for (int i = 0; i <= 9; i++) {
int tmpNumber = number;
while (tmpNumber > 0) {
int digit = tmpNumber % 10;
if (digit == i) {
if (addToOne) {
num1 *= 10;
num1 += digit;
addToOne = false;
} else {
num2 *= 10;
num2 += digit;
addToOne = true;
}
}
tmpNumber /= 10;
}
}
return num1 + num2;
}
}