题目:
给你一个字符串 s ,它每一位都是 1 到 9 之间的数字组成,同时给你一个整数 k 。
如果一个字符串 s 的分割满足以下条件,我们称它是一个 好 分割:
s中每个数位 恰好 属于一个子字符串。- 每个子字符串的值都小于等于
k。
请你返回 s 所有的 好 分割中,子字符串的 最少 数目。如果不存在 s 的 好 分割,返回 -1 。
注意:
- 一个字符串的 值 是这个字符串对应的整数。比方说,
"123"的值为123,"1"的值是1。 - 子字符串 是字符串中一段连续的字符序列。
算法:
方法一:贪心
func minimumPartition(s string, k int) int {
cnt := 0
num := 0
for i := range s {
cur := int(s[i] - '0')
if cur > k {
return - 1
}
num = num * 10 + cur
if num > k {
num = cur
}
if num < 10 {
cnt ++
}
}
return cnt
}