leetcode_rust/cases_cn/c000_0xx/
c000_017.rs1use crate::{
2 common::{Case, CaseGroup},
3 new_case,
4};
5
6pub fn use_cases() -> Vec<Case<String, Vec<String>, i32>> {
7 let mut case_group: CaseGroup<String, Vec<String>, i32> = CaseGroup::new();
8
9 macro_rules! new {
10 ({$val1:expr, })=>{
11 new_case!(case_group.create, $val1, vec![]);
12 };
13 ({$val1:expr, $val2:expr})=>{
14 new_case!(case_group.create, $val1, Vec::from($val2).iter().map(|s| s.to_string()).collect());
15 };
16 ({$val1:expr, $val2:expr}, $({$val3:expr, $val4:expr}),+,) => {
17 new!({$val1, $val2});
18 new!($({$val3, $val4}),+);
19 };
20 ({$val1:expr, }, $({$val3:expr, $val4:expr}),+,) => {
21 new!({$val1, });
22 new!($({$val3, $val4}),+,);
23 };
24 ({$val1:expr, }, $({$val3:expr, $val4:expr}),+) => {
25 new!({$val1, });
26 new!($({$val3, $val4}),+,);
27 };
28 }
29
30 new!(
31 {"", },
32 {"23", ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]},
33 {"2", ["a", "b", "c"]}
34 );
35
36 case_group.all()
37}