diff options
Diffstat (limited to 'other/count_ways_build_strs.cpp')
-rw-r--r-- | other/count_ways_build_strs.cpp | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/other/count_ways_build_strs.cpp b/other/count_ways_build_strs.cpp deleted file mode 100644 index d388b2f..0000000 --- a/other/count_ways_build_strs.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// 2466. Count Ways To Build Good Strings -#include "leetcode.h" - -/* - * given the integers 'zero, one, low, and high', we can construct a string by - * starting with an empty string, and then at each step perform either of the - * following opperations: - * - append the character 0 'zero' times - * - append the character 1 'one' times - * this can be performed any number of times. a good string is a string - * constructed by the above process having a length between 'low' and 'high' - * (inclusive). return the number of different good strings that can be - * constructed. return modulo 10^9+7. - */ - -class Solution { -public: - int countGoodStrings(int low, int high, int zero, int one) { - int mod = 1e9 + 7, ans = 0; - vector<int> dp(high + 1, 0); - dp[0] = 1; - for (int i = 1; i <= high; i++) { - if (i >= one) - dp[i] = (dp[i] + dp[i - one]) % mod; - if (i >= zero) - dp[i] = (dp[i] + dp[i - zero]) % mod; - if (i >= low) - ans = (ans + dp[i]) % mod; - } - return ans; - } -}; - -int main() { - Solution obj; - printf("%d\n", obj.countGoodStrings(3, 3, 1, 1)); // expect: 8 - printf("%d\n", obj.countGoodStrings(2, 3, 1, 2)); // expect: 5 -} |