https://leetcode.com/problems/partitioning-into-minimum-number-of-deci-binary-numbers/
A decimal number is called deci-binary if each of its digits is either 0 or 1 without any leading zeros. For example, 101 and 1100 are deci-binary, while 112 and 3001 are not. Given a string n that represents a positive decimal integer, return the minimum number of positive deci-binary numbers needed so that they sum up to n.
Example 1: Input: n = “32” Output: 3 Explanation: 10 + 11 + 11 = 32 Example 2: Input: n = “82734” Output: 8 Example 3: Input: n = “27346209830709182346” Output: 9
Constraints:
1 <= n.length <= 105
n consists of only digits.
n does not contain any leading zeros and represents a positive integer.
- code
class Solution {
public int minPartitions(String n) {
int count = 0;
while (!n.equals("")){
if (n.equals("1")) return count + 1;
StringBuilder sb = new StringBuilder();
for (char c: n.toCharArray()){
if (c == '0' || c == '1'){
continue;
}else{
sb.append(c - '1');
}
}
n = sb.toString();
count++;
}
return count;
}
}
- code
class Solution {
public int minPartitions(String n) {
int res = 0;
for (int i = 0; i < n.length(); i++){
res = Math.max(res, n.charAt(i) - '0');
}
return res;
}
}