rustgym/leetcode/
_989_add_to_array_form_of_integer.rs1struct Solution;
2
3impl Solution {
4 fn add_to_array_form(mut a: Vec<i32>, mut k: i32) -> Vec<i32> {
5 let mut i = a.len() - 1;
6 while k > 0 {
7 let sum = a[i] + k;
8 a[i] = sum % 10;
9 k = sum / 10;
10 if i > 0 {
11 i -= 1;
12 } else {
13 a.insert(0, 0);
14 }
15 }
16 if a.len() > 1 && a[0] == 0 {
17 a.remove(0);
18 }
19 a
20 }
21}
22
23#[test]
24fn test() {
25 let a = vec![1, 2, 0, 0];
26 let k = 34;
27 let res = vec![1, 2, 3, 4];
28 assert_eq!(Solution::add_to_array_form(a, k), res);
29 let a = vec![2, 7, 4];
30 let k = 181;
31 let res = vec![4, 5, 5];
32 assert_eq!(Solution::add_to_array_form(a, k), res);
33 let a = vec![2, 1, 5];
34 let k = 806;
35 let res = vec![1, 0, 2, 1];
36 assert_eq!(Solution::add_to_array_form(a, k), res);
37 let a = vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9];
38 let k = 1;
39 let res = vec![1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
40 assert_eq!(Solution::add_to_array_form(a, k), res);
41}