Given a string str of length N. The task is to find the number of integers obtained by replacing ‘?’ with any digit such that the formed integer gives remainder 5 when it is divided by 13.
Numbers can also begin with zero. The answer can be very large, so, output answer modulo 109 + 7.
Input: str = “?44”
Only possible number is 044
Input: str = “7?4”
Input: str = “8?3?4233?4?”
Approach: Let dp[i][j] be the number of ways to create an i-digit number consistent with the first i digits of the given pattern and congruent to j modulo 13. As our base case, dp[i]=0 for i from 1 to 12, and dp=1 (as our length-zero number has value zero and thus is zero mod 13.)
Notice that appending a digit k to the end of a number that’s j mod 13 gives a number that’s congruent to 10j+k mod 13. We use this fact to perform our transitions. For every state, dp[i][j] with i < N, iterate over the possible values of k. (If s[i]=’?’, there will be ten choices for k, and otherwise, there will only be one choice.) Then, we add dp[i][j] to dp[i+1][(10j+k)%13].
To get our final answer, we can simply print dp[N].
Below is the implementation of the above approach :
- Minimum number of operations on a binary string such that it gives 10^A as remainder when divided by 10^B
- Program to find remainder when large number is divided by 11
- Program to find remainder when large number is divided by r
- Largest number by which given 3 numbers should be divided such that they leaves same remainder
- Number of distinct integers obtained by lcm(X, N)/X
- Find all the possible remainders when N is divided by all positive integers from 1 to N+1
- Find the remainder when First digit of a number is divided by its Last digit
- Check if a string can be converted to another string by replacing vowels and consonants
- Check if a string can be obtained by rotating another string d places
- Check if a string can be obtained by rotating another string 2 places
- Find the resultant String after replacing X with Y and removing Z
- Python | Replacing Nth occurrence of multiple characters in a String with the given character
- Count of distinct remainders when N is divided by all the numbers from the range [1, N]
- Lexicographically smallest string obtained after concatenating array
- Count subarrays such that remainder after dividing sum of elements by K gives count of elements
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.