【LeetCode每日一题】——2269.找到一个数字的 K 美丽值

news2024/12/31 4:42:10

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 滑动窗口

二【题目难度】

  • 简单

三【题目编号】

  • 2269.找到一个数字的 K 美丽值

四【题目描述】

  • 一个整数 num 的 k 美丽值定义为 num 中符合以下条件的 子字符串 数目:
    • 子字符串长度为 k 。
    • 子字符串能整除 num 。
  • 给你整数 num 和 k ,请你返回 num 的 k 美丽值。
  • 注意:
    • 允许有 前缀 0 。
    • 0 不能整除任何值。
  • 一个 子字符串 是一个字符串里的连续一段字符序列。

五【题目示例】

  • 示例 1:

    • 输入:num = 240, k = 2
    • 输出:2
    • 解释:以下是 num 里长度为 k 的子字符串:
      • “240” 中的 “24” :24 能整除 240 。
      • “240” 中的 “40” :40 能整除 240 。
    • 所以,k 美丽值为 2 。
  • 示例 2:

    • 输入:num = 430043, k = 2
    • 输出:2
    • 解释:以下是 num 里长度为 k 的子字符串:
      • “430043” 中的 “43” :43 能整除 430043 。
      • “430043” 中的 “30” :30 不能整除 430043 。
      • “430043” 中的 “00” :0 不能整除 430043 。
      • “430043” 中的 “04” :4 不能整除 430043 。
      • “430043” 中的 “43” :43 能整除 430043 。
    • 所以,k 美丽值为 2 。

六【题目提示】

  • 1 < = n u m < = 1 0 9 1 <= num <= 10^9 1<=num<=109
  • 1 < = k < = n u m . l e n g t h (将 n u m 视为字符串) 1 <= k <= num.length (将 num 视为字符串) 1<=k<=num.length(将num视为字符串)

七【解题思路】

  • 利用滑动窗口的思想
  • 此窗口固定大小为题目给定的k,从左到右滑动,如果此窗口内的数字不为0,并且可以整除给定数字,那么就记录到结果中
  • 需要注意不要越界,思路不难,如果不用库函数,那么具体实现稍复杂一些,具体可见下面的代码,写的很详细
  • 最后返回结果即可

八【时间频度】

  • 时间复杂度: O ( n ) O(n) O(n) n n n为传入数字的长度
  • 空间复杂度: O ( 1 ) O(1) O(1)

九【代码实现】

  1. Java语言版
class Solution {
    public int divisorSubstrings(int num, int k) {
        int res = 0;
        int[] temp_num = new int[10];
        int i,count,temp;
        for(i = 0,temp = num;temp > 0;temp /= 10,i++){
            temp_num[i] = temp % 10;
        }
        count = i - k + 1;
        for(i = 0;i < count;i++){
            int sum = 0;
            for(int j = 0;j<k;j++){
                sum *= 10;
                sum += temp_num[i + k - j - 1];
            }
            if(sum != 0 && num % sum == 0){
                res++;
            }
        }
        return res;
    }
}
  1. C语言版
int divisorSubstrings(int num, int k)
{
    int res = 0;
    int* temp_num = (int*)malloc(sizeof(int) * 10);
    int i,count,temp;
    for(i = 0,temp = num;temp > 0;temp /= 10,i++)
    {
        temp_num[i] = temp % 10;
    }
    count = i - k + 1;
    for(i = 0;i < count;i++)
    {
        int sum = 0;
        for(int j = 0;j < k;j++)
        {
            sum *= 10;
            sum += temp_num[i + k - j - 1];
        }
        if(sum != 0 && num % sum == 0)
        {
            res++;
        }
    }
    return res;
}
  1. Python语言版
class Solution:
    def divisorSubstrings(self, num: int, k: int) -> int:
        res = 0
        num = str(num)
        for i in range(0,len(num) - k + 1):
            temp = int(num[i:i+k])
            if temp == 0:
                continue
            if int(num) % temp == 0:
                res += 1
        return res;
  1. C++语言版
class Solution {
public:
    int divisorSubstrings(int num, int k) {
        int res = 0;
        int i,count,temp;
        int* temp_count = (int*)malloc(sizeof(int) * 10);
        for(i = 0,temp = num;temp > 0;temp /= 10,i++){
            temp_count[i] = temp % 10;          
        }
        count = i - k + 1;
        for(i = 0;i < count;i++){
            int sum = 0;
            for(int j = 0;j < k;j++){
                sum *= 10;
                sum += temp_count[i + k - j - 1];
            }
            if(sum != 0 && num % sum == 0){
                res++;
            }
        }
        return res;
    }
};

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

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

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

相关文章

第二十二篇、基于Arduino uno,控制五线四相步进电机实现正转和反转——结果导向

0、结果 说明&#xff1a;步进电机可以旋转指定角度&#xff0c;例如转了九十度就停止&#xff0c;如果想一直转也是可以的&#xff0c;程序里面已写&#xff0c;而且也有正反转。如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;五线四相步进电机如下…

自然语言处理从入门到应用——文本的表示方法

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 若要利用计算机对自然语言进行处理&#xff0c;首先需要解决语言在计算机内部的存储和计算问题。字符串&#xff08;String&#xff09;是文本最自然&#xff0c;也是最常用的机内存储形式。所谓字符串&#xff0c;即字…

rtty移植到MTK OpenWRT平台

准备工具链 使用MTK Openwrt 相应平台工具链&#xff0c;不能使用buildroot的工具链&#xff0c;否则程序无法运行&#xff0c;本文MTK7621为例工具链官网下载地址 构建libev rtty依赖libev库&#xff0c;因此需要先构建libev git clone https://github.com/enki/libev.git …

C语言-外部关键字extern

extern 关键字 extern 用在全局变量或函数的声明前&#xff0c;用来说明“此变量/函数是在别处定义的&#xff0c;要在此处引用。 什么是定义&#xff0c;什么是声明? 什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字&#xff0c;这个名字就是我们经…

《多传感器融合感知》一、构建自动驾驶多传感器系统

来自 &#xff1a; https://www.bilibili.com/video/BV1JY4y1R7Be/ 多传感器融合的需求多传感器硬件系统构建多传感器硬件系统的时序闭环 1. 多传感器融合的需求 自动驾驶用来解决的问题&#xff1a; 建图定位、感知问题&#xff08;路上有什么、堵不堵、好不好走…&#xff…

数据可视化系列指南之分布类图表大全

导语 随着数据在各行业中的应用越来越广泛&#xff0c;大家也逐渐认识到数据可视化在企业生产经营中的重要作用&#xff0c;在数据可视化过程中&#xff0c;图表是处理数据的重要组成部分&#xff0c;因为它们是一种将大量数据压缩为易于理解的格式的方法。数据可视化可以让受…

生态系统服务评估方法 | 人类活动影响、重大工程实施的生态成效评估(InVEST模型)

以InVEST模型结合实际项目进行由浅入深的实战技术&#xff0c;针对特点及需求进行分析&#xff0c;融合课程体系&#xff0c;对接工作实际项目及论文写作&#xff0c;解决参会者关注的重点及实际项目过程问题&#xff0c;采取逐步延伸的逻辑&#xff0c;不论您是小白亦或是已经…

数据库磁盘文件格式的设计原理内幕

引言 访问磁盘需通过系统调用来实现&#xff0c;因此通常我们需要指定目标文件的偏移量&#xff0c;然后把数据从磁盘上的形式解析成合适主存的形式。这意味着要想设计一个高效的磁盘数据结构&#xff0c;必须构造一种易于修改和解析的文件格式。在本文中&#xff0c;我们将讨论…

unicms 使用thinkphp8 重构版

unicms 有你存在 一切安好 2023年6月使用thinkphp8&#xff0c;重构了cms。php最低使用php8版。参考了多个cms结合10年的开发经验&#xff0c;打造了开箱机用&#xff0c;简单的cms系统。当然由于你能力和开发时间限制&#xff0c;肯定有bug。欢迎大家指正。我也会不定期的修改…

【线性规划模型】

线性规划模型&#xff1a;原理介绍和预测应用 引言 线性规划是运筹学中一种重要的数学优化方法&#xff0c;被广泛应用于各个领域&#xff0c;包括工业、经济、物流等。 线性规划模型的原理 线性规划模型的目标是在一组线性约束条件下&#xff0c;寻找一组变量的最优解&…

Emm_V4.2步进闭环驱动器说明书Rev1.1

一、产品介绍 1.1 产品简介&#xff1a; Emm42_V4.x步进闭环驱动器是张大头智控为满足广大用户需求而自主研发的一款稳定可靠的产品&#xff0c;它是基于上一代Emm42_V3.6版本升级而来&#xff0c;不仅延续了其优秀的FOC矢量闭环控制算法&#xff0c;更在其传统的Dir/Step控制模…

Java003——编写和运行第一个Java程序HelloWorld

一、使用记事本创建Java并运行 1.1、设置文件显示后缀名 目的是为了方便查看文件类型 1.2、创建一个HelloWorld.java文件 java程序文件都是以.java后缀结尾的 1.3、编写Java程序 编写一下程序&#xff0c;并保存 public class HelloWorld {public static void main(Strin…

100天精通Golang(基础入门篇)——第0天: 安装 Go 语言开发环境的基础教程,带你学习Golang之Hello Go !

文章目录 1. 下载 Go 语言的安装包&#xff1a;1. 安装 Go 编译器&#xff1a;- 双击 安装下一步:切换安装路径:下一步:安装等待安装完成安装完成 - 2. 测试安装是否成功&#xff1a;1. 开始学习 Go 语言&#xff1a;1. 创建项目2. 创建 类文件3. 输入类名4. 键入 下方代码块5.…

【C语言】让你不再害怕“指针”【c】【知识点整理】

目录 一.什么是指针&&为什么需要指针&#xff1f; 1.什么是指针&#xff1f; 2.为什么需要指针&#xff1f; 以一个代码为例观察地址&#xff1a;&#xff08;这里我们可以通过调试和打印两种方式观察&#xff09; 1.调试观察&#xff1a; 2.打印观察&#xff08;…

Vue.js 中的 v-if 和 v-show 有什么区别?

Vue.js 中的 v-if 和 v-show 有什么区别&#xff1f; 在 Vue.js 中&#xff0c;v-if 和 v-show 都是用来控制元素的显示和隐藏的指令。但是&#xff0c;它们之间有一些区别。本文将深入探讨 v-if 和 v-show 的区别&#xff0c;并给出一些相关的代码示例。 v-if v-if 是一种条…

python数据分析模块

python数据分析模块 Python与数据分析的关系数据分析常用模块Python数据分析常用类库1&#xff0e;数组计算的数学模块-Numpy2&#xff0e;Pandas——数据分析核心库3&#xff0e;Matplotlib——绘制数据图表的 Python 库4&#xff0e;批量处理Excel文件的模块-xlwings5&#x…

浮点型在内存中的存储,与整型存储方式竟然不同

对于整形的存储方式&#xff0c;大家可以看我的上一篇文章&#xff0c;这篇文章来介绍浮点型在内存中存储方式。 目录 1. 问题 2. 浮点型家族&#xff1a; 3. 存储方式: 4. 读取方式&#xff1a; 5. 解题 1. 问题 我们先来看一段代码&#xff1a; #include <stdio.h&…

人体姿态估计

预测人体关键点有什么作用&#xff1f; 还原人体姿态&#xff0c;输出脸部、手部的关键点坐标3D空间内&#xff0c;关键点变为3维坐标&#xff0c;可以在三维空间中还原人体姿态&#xff0c;可以实现一键换装恢复3D的人体模型实现下游任务–行为理解&#xff0c;根据姿态判断人…

rocketmq-client-go注册消费者组的问题

一、前言 test环境服务启动&#xff0c;通过代码新注册一个customer group进行消费&#xff0c;服务一直报错如下&#xff1a; levelerror msg"fetch offset of mq from broker error" MessageQueue"MessageQueue [topicxxx, brokerNamebroker-a, queueId1]&q…

字节跳动面试挂在2面,复盘后,决定二战.....

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;字节的游戏专场又是最早开始的&#xff0c;就投递了&#xf…