Problem Statement
- 'a' matches small digits: '0' and '1'
- 'A' matches big digits: '2' and '3'
- 'b' matches even digits: '0' and '2'
- 'B' matches odd digits: '1' and '3'
Definition
- Class:
- Softmatch
- Method:
- count
- Parameters:
- String, String[]
- Returns:
- int
- Method signature:
- int count(String S, String[] patterns)
- (be sure your method is public)
Constraints
- S will contain between 1 and 50 characters, inclusive.
- Each character in S will be either 'a' or 'b'.
- patterns will contain between 1 and 5 elements, inclusive.
- Each element in patterns will contain between 1 and 50 characters, inclusive.
- Each character in patterns will be between '0' and '3', inclusive.
- Each element in patterns will be at most as long as S.
Examples
"aaa"
{"03","21"}
Returns: 2
There are two optimal solutions: You may change S to "AaA". This string contains an occurrence of pattern 1 at position 0 and an occurrence of pattern 0 at position 1. You may change S to "aAa". This string contains an occurrence of pattern 0 at position 0 and an occurrence of pattern 1 at position 1. In either case, the total number of occurrences of a pattern is 2.
"aba"
{"03","11"}
Returns: 3
The string "aBa" contains three occurrences of the given patterns: pattern 0 occurs at position 0, and pattern 1 occurs both at position 0 and at position 1.
"bba"
{"00","00"}
Returns: 4
Even if two patterns are equal, we count the occurrences of each of them separately.
"bbbbbb"
{"1110","011","100"}
Returns: 3
"abbaa"
{"123"}
Returns: 2
"aababbaab"
{"012","332","101", "0313"}
Returns: 7
"ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"
{"3103021","3311","0322020","0021212","2110130"}
Returns: 22
"bbaab"
{"31","221","13","202","212"}
Returns: 6
"bbbbbbabbbbbbbbbbbbbab"
{"33113"}
Returns: 15
"aaba"
{"222","00","232","010"}
Returns: 4
"abbabababbbbbabbaaabababbbaaaaaaaa"
{"013023"}
Returns: 6
"ababbbaabaabababbbbbbabba"
{"232123","003220","022231","200122"}
Returns: 9
"aa"
{"30","2","11"}
Returns: 2
"aaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaabaaaaa"
{"3102102","2210323","3110001","0122210","2113212"}
Returns: 13
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaab"
{"3030113","1113022","0030122"}
Returns: 9
"abbbbbbbbaaabbbabbbbb"
{"03003","22","23033","01221","12"}
Returns: 22
"aaaababbbbabbaabaababbabab"
{"3","101221","102330","010131"}
Returns: 26
"bbabaabbbbabbaababbbbbbaaaabbbabbbbbbbbbbbbbbbbbab"
{"30323223","33112221"}
Returns: 9
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{"02330101","1300"}
Returns: 16
"babaaaababababaabbbaabbbbbbaaaabababbabaaabaaaaa"
{"3223"}
Returns: 23
"aabaaabaaabbaaaaaaaaaababaaaaaaaaaa"
{"303113","102001","202213","003033"}
Returns: 12
"baababbbbbaaaababbbabbbabbb"
{"211012","31100","220002"}
Returns: 10
"bbbbabbbbbbbbbbabbbababbbbaababbb"
{"103031"}
Returns: 7
"aaa"
{"2","31","30","33","1"}
Returns: 6
"abbaa"
{"1","013","311"}
Returns: 8
"bbbbbbbbbbbbbbbbbbbb"
{"22101"}
Returns: 4
"aaabaaaaaaaaaaaaabaaaaababaaaaaaa"
{"120022","100212","0132","011233","022331"}
Returns: 15
"aabbbbbbbbabb"
{"2322","3013","3223"}
Returns: 7
"aaaaaaaaaaaabaaaabaaaaaaaaababaaaaaaaaaaaaaaaaaab"
{"20123331","30221012"}
Returns: 7
"baabaaaaaabb"
{"0313","1013"}
Returns: 5
"bbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbabbbbbbbbbbbbbbbbb"
{"02023020","23111322"}
Returns: 9
"aaaaaaaaaaaaaabaaaaaaabbaaaaabaaabaabaaaabab"
{"2113210"}
Returns: 9
"aaaaabaaaaaaaaaaaaa"
{"210","11131","20021","11220"}
Returns: 11
"babbbbbabbbbbbbbabbbbabbbbaabbbbbbabbbbbabbbbbbbbb"
{"00102323"}
Returns: 7
"aaaabaaaaaaabaaaabaaaaaaabaabbaaaaaabb"
{"2010302"}
Returns: 6
"aaabbaaaaaaababaabaaaabaaaaaaaaaaaabaaaaa"
{"3300012","2003030"}
Returns: 8
"bbbaabbbbabaabbabbbbbbaabbbbbbb"
{"003120"}
Returns: 6
"aaabaa"
{"102","102","331"}
Returns: 5
"aababbbbbbbbabbbbaaaabbbaaababaabbabaaababaaaaaabb"
{"22302011","31323120","01133023","23221233","10302221"}
Returns: 12
"babbabbaabbb"
{"1011"}
Returns: 4
"abaaaabaaaaba"
{"2320","0210","01","13"}
Returns: 13
"aababbbbbaabaababaababaaaba"
{"01113","1","02"}
Returns: 35
"aabbbbbbbbbbaabbbbabbaabbbabbbbbbaabbabbaaabbbbabb"
{"30031303","2010321","00120000","10221103","03321010"}
Returns: 13
"aabbbbbaaababaab"
{"31330"}
Returns: 3
"bbbbbbbbbbbbbbbbbbbbbabbbbbbbb"
{"231123"}
Returns: 7
"baaabbababbbaaaaaaaaaababaaaaaaaaabaaabb"
{"1311","1231203"}
Returns: 17
"aaaaaaaaaaaaaaaa"
{"12132","23110","12331","20"}
Returns: 10
"aabaaaaab"
{"3100"}
Returns: 2
"aaaaaaaaababaabaaaaabaabaaaaba"
{"132311","131033","023331"}
Returns: 10
"bbbbbbbbbbbaaabbbbbaaabbbbabbbbabbabbbbbabbb"
{"2332133","3032023","1323303"}
Returns: 12
"aaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabaaaab"
{"22113","1010211","0232121","2120012","3012333"}
Returns: 14
"aaaaaaaaaaaaaaaaaaaa"
{"02331"}
Returns: 4
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
{"033011","221231","231332"}
Returns: 10
"bbbbbbbbabbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbb"
{"00213121","31010111","2320"}
Returns: 16
"aaaaaaabaabaaaaaaaaabaaaaaab"
{"123223","032322","211302"}
Returns: 8
"bababbbbbbbabbb"
{"2310"}
Returns: 5
"ababbbbabbabbbbabbaabbbaaabbabbbabbbbaaaab"
{"1030211","1120322","0200212","2211013","0020300"}
Returns: 13
"bbabbbbabbabbabbabbbbbbbbabbbbbbbbbbbbbb"
{"31131311121022221003232301033122","2001030"}
Returns: 7
"bbababababbbaaaaaaaabbababbaaababab"
{"3230"}
Returns: 13
"b"
{"1","1"}
Returns: 2
"babbbbbabbaaabbabbbbabb"
{"22313","13002311011332121","11001","10100","21101"}
Returns: 12
"aabbbaaabab"
{"2102"}
Returns: 3
"abbbba"
{"000"}
Returns: 4
"ababbabaabaabbabbaaaaaaabababababbaabaaaabbbab"
{"123001201323313030113011130222003012","3130031","2303102"}
Returns: 12
"abbabaaaa"
{"2212"}
Returns: 2
"bbbabbbbbbaabbaa"
{"11310","02233","10200"}
Returns: 6
"baaabbbababaabbabaabaababbaaaaabbaabbaabababbbbaaa"
{"13111300","202201","33333303"}
Returns: 11
"baabbaabaaabbbbabaaabbbabbbaaabbabababb"
{"0130221","3130012","11230023301013130","013311012113310010320303222330313232310"}
Returns: 8
"abaabbabbabbbbb"
{"3102","2311"}
Returns: 7
"baabaaabbbbbaaaaabababbbbaabbbbbababbbbbbbaab"
{"3212110","120322313110030231200022110120","001220"}
Returns: 11
"bba"
{"3","2"}
Returns: 4
"b"
{"2","2","0","1"}
Returns: 3
"aaaaaaaaaaaababaaaaaaaaaaaaaababbabbaaaaaaaaabaaaa"
{"133323002212020","13322101","11012330","03123131"}
Returns: 9
"bbbbabbbabbbbbaabaabbbbbbbababaaababbbababaaaa"
{"2","0021002"}
Returns: 46
"baaaabaabbbbaaabbbbbbabaabaaabaabababbbabaabbb"
{"1030211","0003233"}
Returns: 8
"baaabbabbaabaaababbbbaabaaaaaaaaabbaabbaaaa"
{"0200110","2020010","31131110231021210311100230222232023302023","1231113","2100"}
Returns: 21
"bbababbbabbbbababbbbbbbbbbbbbbbbbbbabbbb"
{"3210030303","1033010","1311203","211131120021211220123133313222223","3210322"}
Returns: 11
"bbaabbbbbba"
{"03213","2210","0010","23"}
Returns: 9
"aaaabaaaaaaabaaaabaaaaaaabaabbaaaaaabb"
{"1030201"}
Returns: 7
"abbabbbbbbbababbbbbabbbabbababababba"
{"23300","2"}
Returns: 36
"aaabaabaaaaaaa"
{"3211","22321"}
Returns: 4
"b"
{"1"}
Returns: 1
"babaaababbaaabaabaaabbbaabbaaaaaaabaaabbbbaaaabbba"
{"312111223003222133131","30203122"}
Returns: 8
"abbbbabbbbbababbabbaabbbbbbbabbbbbbba"
{"1333011","2211332","0110013","0010132122023201021010121320020122312"}
Returns: 11
"bbbbbbbbbbbabbbbbbbbbbbababbbabbbbbbbbbbbbbbabbbba"
{"10102031","3103030031333103120","313030201032120012000021022","03003321","03011003"}
Returns: 10
"aaababaabbabb"
{"3313"}
Returns: 5
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{"0","0","0","0","0"}
Returns: 250
"aaaaababaabbbabbabaabbbabbaaabababbbaaabbabaababab"
{"00012121", "331112001", "23101", "003212", "0012123112312" }
Returns: 18
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{"012301230123012301230123012300", "000000", "111111111111", "3333333333333333333333333333", "2222" }
Returns: 84
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{"02" }
Returns: 25
"aaaaaaaa"
{"20000000" }
Returns: 1
"aaaaaaaa"
{"22222222" }
Returns: 1
"aababaababbaababbaabaaaababbaabbbaabaababbaab"
{"0123210123", "03131212", "1012", "03", "111" }
Returns: 57
"aaaaaaaaaaa"
{"113131113" }
Returns: 1