leetcode_rust/cases_cn/c000_0xx/
c000_010.rs1use crate::{
2 common::{Case, CaseGroup},
3 new_case,
4};
5
6pub fn use_cases() -> Vec<Case<String, bool, i32>> {
7 let mut case_group: CaseGroup<String, bool, i32> = CaseGroup::new();
8
9 macro_rules! new {
10 ({$val1:expr, $val2:expr})=>{
11 new_case!(case_group.create_multi, $val1, $val2);
12 };
13 ({$val1:expr, $val2:expr}, $({$val3:expr, $val4:expr}),+) => {
14 new!({$val1, $val2});
15 new!($({$val3, $val4}),+)
16 };
17 }
18
19 new!(
20 {vec!["a", "a"], true},
21 {vec!["a", "b"], false},
22 {vec!["a", "."], true},
23 {vec!["a", "ab*"], true},
24 {vec!["a", "a*bc.*"], false},
25 {vec!["a", ".*..a*"], false},
26 {vec!["aa", "a"], false},
27 {vec!["aa", "a*"], true},
28 {vec!["ab", "a*"], false},
29 {vec!["ab", ".*"], true},
30 {vec!["ab", ".*c"], false},
31 {vec!["ab", ".a"], false},
32 {vec!["ab", ".b"], true},
33 {vec!["ab", "b*"], false},
34 {vec!["ab", "bc"], false},
35 {vec!["abc", ".*"], true},
36 {vec!["abc", "a*bc"], true},
37 {vec!["abc", "a.*c"], true},
38 {vec!["abc", "a.c"], true},
39 {vec!["abc", "ac*c"], false},
40 {vec!["abc", "ac*bc"], true},
41 {vec!["aab", "a*"], false},
42 {vec!["adebb", ".*bbb*"], true},
43 {vec!["bbbba", ".*a*a"], true},
44 {vec!["adebbb", ".*bbb*"], true},
45 {vec!["aabcdde", "a*bc.*"], true},
46 {vec!["adebbbcbbb", ".*bbb*"], true},
47 {vec!["adebbbcbbb", ".*bb*"], true},
48 {vec!["adebbbcbbb", ".*b*"], true},
49 {vec!["cbaacacaaccbaabcb", "c*b*b*.*ac*.*bc*a*"], true},
50 {vec!["acaabbaccbbacaabbbb", "a*.*b*.*a*aa*a*"], false},
51 {vec!["abcaaaaaaabaabcabac", ".*ab.a.*a*a*.*b*b*"], true},
52 {vec!["aaaaaaaaaaaaaaaaaaab", "a*a*aaaaa*a*a*a*a*a*a*a*a*a*a*"], false},
53 {vec!["aaaaaaaaaaaaaaaaaaab", "a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*"], false}
54 );
55
56 case_group.all()
57}