力扣经典题目之2283. 判断一个数的数字计数是否等于数位的值

server/2025/1/12 12:15:19/

今天继续给大家分享一道力扣的做题心得今天这道题目是

题目链接:

2283. 判断一个数的数字计数是否等于数位的值

题目如下:

给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。

如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false 。


1,题目分析

此题解题代码不难,但是在题目理解上有一些难点,下面是理解题目的要点。

要点:

        根据题目的给出例子可以看到我们是需要确定再给出的这个数字数组中数组的索引出现了对应的 num[ i ] 次的次数,注意对应关系以及是必须要出现的是对应的次数多了或者少了都不可以,如果满足上述要求则返回true,否则返回false即可,下面是题目所给出的一个比较直观的展示题目要求的例子

示例 1:  输入:num = "1210" 输出:true

解释: num[0] = '1' 。数字 0 在 num 中出现了一次。
num[1] = '2' 。数字 1 在 num 中出现了两次。
num[2] = '1' 。数字 2 在 num 中出现了一次。
num[3] = '0' 。数字 3 在 num 中出现了零次。
"1210" 满足题目要求条件,所以返回 true 。

2,解题思路

题解代码:

java">class Solution {private int[] f = new int[10];public boolean digitCount(String num) {int n = num.length();for (int i = 0; i < n; ++i) {f[num.charAt(i) - '0']++;}for (int i = 0; i < n; ++i) {if (f[i] != num.charAt(i) - '0') {return false;}}return true;}
}
  1. 理解问题

    • 输入是一个只包含数字的字符串 num
    • 对于每个下标 inum[i] 表示数位 i 在字符串中应该出现的次数。
    • 需要验证字符串中的每个数位是否满足这个条件。
  2. 使用数组统计数位出现次数

    • 创建一个长度为10的数组 f,用来统计每个数位(0到9)在字符串中实际出现的次数。
    • 遍历字符串 num,对于每个字符 num.charAt(i),将其转换为对应的整数(通过减去字符 '0'),然后在数组 f 中相应位置加1。
  3. 验证条件

    • 再次遍历字符串 num,对于每个下标 i,检查数组 f[i] 是否等于 num.charAt(i) - '0'
    • 如果有任何一个下标不满足条件,则返回 false
    • 如果所有下标都满足条件,则返回 true

    4,代码细节分析

  • 数组 f 的初始化int[] f = new int[10],数组的索引从0到9,分别对应数位0到9。
  • 字符转换为整数num.charAt(i) - '0' 将字符转换为对应的整数。例如,字符 '3' 减去 '0' 的结果是整数 3
  • 计数f[num.charAt(i) - '0']++ 增加对应数位的计数。
  • 验证条件if (f[i] != num.charAt(i) - '0') 检查每个下标 i 的条件是否满足。

 

3,总结

        感谢大家的阅读,希望这篇解题心得能为大家带来一些收获,我们共同进步!大家的点赞就是我的动力谢谢大家,还有什么更优解或者问题欢迎大家在评论区讨论分享!


http://www.ppmy.cn/server/157760.html

相关文章

单片机(MCU)-简单认识

简介&#xff1a; 内部集成了CPU&#xff0c;RAM&#xff0c;ROM&#xff0c;定时器&#xff0c;中断系统&#xff0c;通讯接口等一系列电脑的常用硬件功能。 单片机的任务是信息采集&#xff08;依靠传感器&#xff09;&#xff0c;处理&#xff08;依靠CPU&#xff09;&…

USRP X310 Windows 烧录镜像

说明 USRP-X 系列设备包含两个用于两个以太网通道的 SFP 端口。由于 SFP 端口支持 1 千兆 (SFP) 和 10 千兆 (SFP) 收发器&#xff0c;因此 UHD 附带了多个 FPGA 图像&#xff0c;以确定上述接口的行为。 注意&#xff1a;Aurora 图像需要从 FPGA 源代码手动构建。 FPGA 图像…

关于ReLU激活函数的解释以及其在神经网络中的应用

ReLU&#xff08;Rectified Linear Unit&#xff0c;修正线性单元&#xff09;是一种常用的激活函数&#xff0c;广泛应用于神经网络中&#xff0c;特别是深度学习中。它的定义非常简单且直观。ReLU的公式如下&#xff1a; f(x)max⁡(0,x)f(x) \max(0, x) 这意味着&#xff…

Cocos二维Slider

1、可拖动区域计算 根据UI的世界坐标了宽高信息计算出handle的坐标范围 this.posMin new Vec2(this.node.worldPosition.x - this.uiSelf.contentSize.width * 0.5, this.node.worldPosition.y - this.uiSelf.contentSize.height * 0.5); this.posMax new Vec2(this.node.w…

TrustRAG:增强RAG系统鲁棒性与可信度的创新框架

在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLMs&#xff09;凭借其强大的语言处理能力在诸多领域大放异彩。检索增强生成&#xff08;RAG&#xff09;系统&#xff08;面向企业RAG&#xff08;Retrieval Augmented Generation&#xff09;系统的多维检索框架…

HBuilderX打包ios保姆式教程

1、登录苹果开发者后台并登录已认证开发者账号ID Sign In - Apple 2、创建标识符&#xff08;App ID&#xff09;、证书&#xff0c;描述文件 3、首先创建标识符&#xff0c;用于新建App应用 3-1、App的话直接选择第一个App IDs&#xff0c;点击右上角继续 3-2、选择App&#x…

【CSS】HTML页面定位CSS - position 属性 relative 、absolute、fixed 、sticky

目录 relative 相对定位 absolute 绝对定位 fixed 固定定位 sticky 粘性定位 position&#xff1a;relative 、absolute、fixed 、sticky &#xff08;四选一&#xff09; top&#xff1a;距离上面的像素 bottom&#xff1a;距离底部的像素 left&#xff1a;距离左边的像素…

Vue 3 和 Electron 来构建一个桌面端应用

我们将使用 Vue 3 和 Electron 来构建一个桌面端应用&#xff0c;该应用可以通过 Websocket 与服务器进行通信&#xff0c;并实现心跳检测、客户端上线、获取资产信息以及修改资产状态的功能。以下是实现步骤的概述&#xff1a; 项目结构&#xff1a;创建一个 Vue 3 项目&…