Given a number as a string, write a function to find the number of substrings (or contiguous subsequences) of the given string which recursively add up to 9.
For example digits of 729 recursively add to 9,
7 + 2 + 9 = 18
Recur for 18
1 + 8 = 9
Input: 4189 Output: 3 There are three substrings which recursively add to 9. The substrings are 18, 9 and 189. Input: 999 Output: 6 There are 6 substrings which recursively add to 9. 9, 99, 999, 9, 99, 9
All digits of a number recursively add up to 9, if only if the number is multiple of 9. We basically need to check for s%9 for all substrings s. One trick used in below program is to do modular arithmetic to avoid overflow for big strings.
Following is a simple implementation based on this approach. The implementation assumes that there are no leading 0’s in input number.
Time complexity of the above program is O(n2). Please let me know if there is a better solution.
This article is contributed by Abhishek. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- Given a number as a string, find the number of contiguous subsequences which recursively add up to 9 | Set 2
- Count the number of contiguous increasing and decreasing subsequences in a sequence
- Number of subsequences in a string divisible by n
- Number of subsequences in a given binary string divisible by 2
- Number of subsequences as "ab" in a string repeated K times
- Number of ways to partition a string into two balanced subsequences
- Minimum number of subsequences required to convert one string to another
- Minimum number of palindromic subsequences to be removed to empty a binary string
- Minimum number of subsequences required to convert one string to another using Greedy Algorithm
- String Range Queries to find the number of subsets equal to a given String
- Find number of times a string occurs as a subsequence in given string
- Number of Subsequences with Even and Odd Sum | Set 2
- Number of Subsequences with Even and Odd Sum
- Number of subsequences with zero sum
- Sum of all subsequences of a number