找出字符串的可整除数组

找出字符串的可整除数组

给你一个下标从 0 开始的字符串 word ,长度为 n ,由从 09 的数字组成。另给你一个正整数 m 。

word 的 可整除数组 div  是一个长度为 n 的整数数组,并满足:

如果 word[0,...,i] 所表示的 数值 能被 m 整除,div[i] = 1
否则,div[i] = 0
返回 word 的可整除数组。

 

示例 1:

输入:word = "998244353", m = 3
输出:[1,1,0,0,0,1,1,0,0]
解释:仅有 4 个前缀可以被 3 整除:"9""99""998244""9982443" 。
示例 2:

输入:word = "1010", m = 10
输出:[0,1,0,1]
解释:仅有 2 个前缀可以被 10 整除:"10""1010"

前缀和+同余

class Solution {
public:
    vector<int> divisibilityArray(string word, int m) {
        vector<int>ans(word.length());
        long long int pre_sum=0;
        for(int i=0;i<word.length();i++){
            pre_sum=(pre_sum*10)%m+word[i]-'0';
            if(pre_sum%m==0)    ans[i]=1;
            else    ans[i]=0;
        }
        return ans;
    }
};
posted @   认真游泳的鱼  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示