LeetCode每日一题[c++]-找出字符串的可整除数组

题目描述

链接:. - 力扣(LeetCode)

        给你一个下标从 0 开始的字符串 word ,长度为 n ,由从 0 到 9 的数字组成。另给你一个正整数 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" 。

解题思路

一个整数可表示为a*10+b: (a*10+b) mod m = (a mod m * 10 + b) mod m
        所以我们可以按照上面的递推式,根据当前表示整数的余数,算出包含下一位字符所表示的整数的余数。

        当余数为零时即为可整除数组,否则不是。最后返回结果即可。

复杂度分析

  • 时间复杂度:O(n),其中 n是输入字符串的长度。

  • 空间复杂度:O(1),不计算返回结果。

代码

#include <vector>
#include <iostream>
using namespace std;
class Solution
{
public:vector<int> divisibilityArray(string word, int m){vector<int> ans(word.length());long long x = 0;for (int i = 0; i < word.length(); i++){x = (x * 10 + (word[i] - '0')) % m;ans[i] = x == 0;}return ans;}
};
void printVector(vector<int> res)
{for (size_t i = 0; i < res.size(); i++){cout << res[i] << " ";}cout << endl;
}
int main()
{Solution solution;string word = "998244353";int m = 3;vector<int> res = solution.divisibilityArray(word, m);printVector(res);word = "1010";m = 10;printVector(solution.divisibilityArray(word, m));}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb4.2升级到5.0版本,升级到6.0版本, 升级到7.0版本案例

今天一客户想把自己当前使用的mongodb数据库4.2版本升级到7.0版本。难道mongodb能直接跳跃升级吗? 经过几经查找资料&#xff0c;貌似真不行呀。确定升级流程如下: 还得从mongo4.2升级到5.0。其次再从5.0升级到6.0。最后再从6.0升级到7.0。 开始升级之前将数据进行备份 这一步…

国家积极推进长城国家文化公园建设

长城脚下&#xff0c;文化绽放——国家积极推进长城国家文化公园建设 在中华大地的北方&#xff0c;横亘着一条巨龙&#xff0c;它见证着中华民族的沧桑岁月&#xff0c;承载着我们的民族记忆&#xff0c;它就是——长城。这座千年的雄关&#xff0c;不仅是中国的象征&#xf…

WPF —— TextBox 控件详解

TextBox控件是WPF中最基本的文字输入控件。它允许最终用户在一行、对话输入、或多行编写&#xff0c;就像是个编辑器。 关于TextBox常用的属性 FontFamily 字体样式 宋体 楷体等 FontWeight 字体粗细 &#xff0c; Bold加粗 FontStyle 字体样式 斜体和…

Git Cherry-Pick命令详解:轻松选取与移植提交

前言 在Git版本控制系统中&#xff0c;git cherry-pick是一个非常实用的功能&#xff0c;它允许开发人员选择性地将某一个或多个提交&#xff08;commit&#xff09;从一个分支复制到另一个分支&#xff0c;从而实现了对特定改动的精确移植。这对于重现特定补丁、回溯修复bug、…

【软件测试】测试工具推荐

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 本…

[Unity实战]使用NavMeshAgent做玩家移动

其实除了Character Controller, Rigidbody&#xff0c;我们还可以使用NavMeshAgent去做。这么做的好处是能避免玩家去莫名其妙的地方&#xff08;毕竟基于烘焙过的导航网格&#xff09;&#xff0c;一般常见于元宇宙应用和mmo。 根据Unity手册&#xff0c;NavMeshAgent 也有和…

Stringbuffer 和 Stringbuilder 的区别是什么?

StringBuffer 和 StringBuilder 是 Java 中用于处理字符串的两种常用类&#xff0c;它们都允许我们修改字符串&#xff0c;即进行字符串的拼接、插入和删除等操作。尽管两者都提供了可变字符串的功能&#xff0c;但它们之间有一些关键的区别&#xff0c;特别是在线程安全性和性…

学c++对Python有帮助吗?

学习C对Python编程确实有帮助&#xff0c;尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面&#xff1a; 理解底层概念&#xff1a;C是一种更接近硬件的编程语言&#xff0c;它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…

【在线普法】无端遭受他人殴打,反击抵抗时不慎致滋事者受伤住院,这样的行为是否构成正当防卫?

反击滋事者致其受伤 是否承担民事责任 无端遭受他人殴打&#xff0c;反击抵抗时不慎致滋事者受伤住院&#xff0c;这样的行为是否构成正当防卫&#xff1f;是否应承担民事责任&#xff1f;近日&#xff0c;重庆市九龙坡区人民法院审结了一起健康权纠纷案&#xff0c;认定本案中…

第二十三章 javascript请求方式Ajax

文章目录 一、Ajax的概念二、Ajax的使用使用流程xhr 状态码&#xff1a;xhr.readyStatehttp 状态码&#xff1a;xhr.status 三、发送数据的数据格式 - Content-Type四、其他1. POST和GET的区别2. AJAX的兼容问题3. 个别设备中ajaxGet请求的缓存问题4. XMLHttprequest常见事件 一…

Dubbo分布式服务框架:原理深度解析与实战应用探索(一)

本系列文章简介&#xff1a; 在本系列文章中&#xff0c;我们将深入探索Dubbo分布式服务框架的原理和实战应用。我们将从Dubbo的架构设计开始&#xff0c;详细解析其内部的工作原理和核心组件。我们将探讨Dubbo的服务治理机制、负载均衡策略、容错机制等&#xff0c;并通过实际…

Linux:文件权限详解及修改方法

文章目录 1、Linux文件权限1.1、如何查看到文件权限1.2、ll命令介绍 2、权限分类2.1、文件权限2.2、文件夹权限 3、权限修改3.1、修改文件/文件夹权限1&#xff09;chmod指令2&#xff09;chmod指令符号 3.2、修改文件/文件夹所属用户3.3、修改文件/文件夹所属群组 4、参考 1、…

AI产品摄影丨香水

AI电商产品拍摄丨&#xff08;可指定产品&#xff09; 均为概念图 可换产品 可指定产品&#xff0c;可换logo 工具&#xff1a;StartAI 搭配“手机摄影”风格使用效果更佳哦 咒语&#xff1a;anha perfume in bottle on stone surface, in the style of everyday american…

和为K的子数组

题目&#xff1a; 使用前缀和的方法可以解决这个问题&#xff0c;因为我们需要找到和为k的连续子数组的个数。通过计算前缀和&#xff0c;我们可以将问题转化为求解两个前缀和之差等于k的情况。 假设数组的前缀和数组为prefixSum&#xff0c;其中prefixSum[i]表示从数组起始位…

JQuery的基础笔记

前言&#xff1a; j --> JavaScript Query --> 查询 jquery的入口函数 等DOM结构渲染完毕即可执行内部代码 相当于原生js的DOMContentLoaded 不同于原生js中的load是等一切加载完毕再执行 用法&#xff1a;&#xff08;推荐第二种&#xff09; $(document).ready(…

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

vue3基础教程(3)——引入ui框架iview(viewui)

博主个人微信小程序已经上线&#xff1a;【中二少年工具箱】。欢迎搜索试用 正文开始 专栏简介1. 下载iview2.更新资源3.引入插件4.运行项目 专栏简介 本系列文章由浅入深&#xff0c;从基础知识到实战开发&#xff0c;非常适合入门同学。 零基础读者也能成功由本系列文章入门…

认识事物的几个阶段 GPU学习

1. GPT的说法 认识事物的过程通常可以分为以下几个阶段&#xff1a; 1. 感知阶段&#xff1a; 这是认识事物的第一步&#xff0c;通过感官&#xff08;视觉、听觉、触觉、味觉、嗅觉&#xff09;接收外界信息。感知是对外部世界的直接观察和感受。 2. 注意阶段&#xff1a;…

底层day2作业

思维导图 作业&#xff1a; 1.使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度 连接硬件&#xff1a;将光敏电阻与单片机的ADC引脚连接&#xff0c;将LED灯与单片机的PWM引脚连接。初始化&#xff1a;在程序中初始化ADC和PWM模块&#xff0c;并设置相应的…

大数据分析技术工程师CCRC-BDATE

大数据分析技术工程师介绍 大数据始于科技之美&#xff0c;归于创造价值。大数据时代&#xff0c;“谁用好数据&#xff0c;谁就能把握先机、赢得主动”。当下数据驱动的电信、社交媒体、生物医疗、电子政务商务等行业都在产生着海量的数据&#xff0c;随着大规模数据关联、交叉…