1
impl Solution {
2
const MODULO: usize = 1_000_000_007;
3
pub fn number_of_arrays(s: String, k: i32) -> i32 {
4
let k = k as usize;
5
let n = s.len();
6

7
let s_bytes = s.as_bytes();
8

9
let mut dp = vec![0; n + 1];
10
dp[n] = 1;
11

12
for i in (0..n).rev() {
13
let mut num: usize = 0;
14
for j in i..n {
15
num = num * 10 + (s_bytes[j] - b'0') as usize;
16
if num > k || s_bytes[i] == b'0' {
17
break;
18
}
19
dp[i] = (dp[i] + dp[j + 1]) % Self::MODULO;
20
}
21
}
22

23
dp[0] as i32
24
}
25
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0