Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://leetcode.com/problems/find-the-divisibility-array-of-a-string/
- You are given a 0-indexed string word of length n consisting of digits, and a positive integer m.
- The divisibility array div of word is an integer array of length n such that:
- div[i] = 1 if the numeric value of word[0,...,i] is divisible by m, or
- div[i] = 0 otherwise.
- Return the divisibility array of word.
- Example 1:
- Input: word = "998244353", m = 3
- Output: [1,1,0,0,0,1,1,0,0]
- Explanation: There are only 4 prefixes that are divisible by 3: "9", "99", "998244", and "9982443".
- Example 2:
- Input: word = "1010", m = 10
- Output: [0,1,0,1]
- Explanation: There are only 2 prefixes that are divisible by 10: "10", and "1010".
- Constraints:
- 1 <= n <= 10^5
- word.length == n
- word consists of digits from 0 to 9
- 1 <= m <= 10^9
- ------------------------------------------------------------------------------------------------------------------------------------
- class Solution {
- public:
- vector<int> divisibilityArray(string word, int m) {
- vector<int> res;
- long long runningRem=0;
- for(auto x: word){
- runningRem=(long long)10*runningRem+1LL*(x-'0')%m;
- runningRem%=m;
- if(runningRem==0){
- res.push_back(1);
- }
- else{
- res.push_back(0);
- }
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment