Problem Statement |
| | You are given a String[] patterns, each element of which is a single pattern. Each pattern contains only lowercase letters and question marks ('?'). A string matches a pattern if it has the same length as the pattern, and at each position, either the corresponding characters are equal or the character in the pattern is a question mark. For example, "abc" matches "a?c", but not "a?b" or "abc?". Return the number of strings consisting of only lowercase letters that match exactly k of the given patterns, modulo 1,000,003. |
| |
Definition |
| | | Class: | SetOfPatterns | | Method: | howMany | | Parameters: | String[], int | | Returns: | int | | Method signature: | int howMany(String[] patterns, int k) | | (be sure your method is public) |
|
| |
|
| |
Constraints |
| - | patterns will contain between 1 and 15 elements, inclusive. |
| - | k will be between 1 and the number of elements in patterns, inclusive. |
| - | Each element of patterns will contain between 1 and 50 characters, inclusive. |
| - | Each element of patterns will have the same length. |
| - | Each element of patterns will contain only lowercase letters ('a' - 'z') and question marks ('?'). |
| |
Examples |
| 0) | |
| | | Returns: 26 | | Every lowercase letter matches this pattern. |
|
|
| 1) | |
| | |
| 2) | |
| | | Returns: 1 | | The only possible solution is "ab". |
|
|
| 3) | |
| | | Returns: 881343 | | 26^5 mod 1000003 = 881343. |
|
|