leetcode-383. 赎金信
leetcode-383. 赎金信
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
// 示例
输入:ransomNote = "a", magazine = "b"
输出:false
题解:
- 如果 ransomNote 的长度大于 magazine 的话,直接返回 false
- 统计 magazine 字符串每个字符出现的次数,出现一次 + 1,存放到一个数组里面,再遍历 ransomNote 字符串出字符的出现次数,出现一次在统计字符数组里面 - 1, 如果 统计数组对应的值 < 0 了, 直接返回 false 不包含
- 如果通过了以上两个判断,返回 true
// 题解代码var canConstruct = function(ransomNote, magazine) {// 如果 ransomNote 长度比 magazine 还长,直接返回 falseif (ransomNote.length > magazine.length) {return false;}// 创建一个数组,里面存的是统计次数 cnt[0] 存放着 字符串里 a 的次数// 定义一个 长度为 26的数组,里面填充 0 const cnt = new Array(26).fill(0);for (const c of magazine) {// 判断字符串里有 几个a,,几个b,,有一个就在对应位置 + 1cnt[c.charCodeAt() - 'a'.charCodeAt()]++;}// 便利 ransomNote 字符串for (const c of ransomNote) {// 判断字符串里有 几个a,,几个b,,有一个就在对应位置 - 1cnt[c.charCodeAt() - 'a'.charCodeAt()]--;// 如果小于零了,就说明肯定不包括,直接 return if(cnt[c.charCodeAt() - 'a'.charCodeAt()] < 0) {return false;}}// 两个判断都过了,就返回 truereturn true;
};
leetcode-383. 赎金信相关推荐
- LeetCode.383. 赎金信
LeetCode.383. 赎金信 难度:easy 利用数组来做哈希表,分别统计两个字符串中各个字母的出现次数: class Solution {public boolean canConstruct ...
- LeetCode 383. 赎金信
383. 赎金信 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成. 如果可以,返回 true :否则返回 fals ...
- leetcode 383. 赎金信 思考分析
题目 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成.如果可以构成,返回 tru ...
- Leetcode 383 赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成.如果可以构成,返回 true : ...
- leetcode 383赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成.如果可以构成,返回 true : ...
- leetcode 383 赎金信 C++
自己想的,一个思路两个解法,从字符串中的第一个唯一字符的思路搬过来的 one class Solution {public:bool canConstruct(string ransomNote, s ...
- 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结
LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 代码随想录算法训练营day07| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和
Leetcode 454.四数相加II 题目链接 思路:求四数相加之和,将四数两两相加,判断两两相加的数是否和为0 定义一个map,key放两数之和,value放两数之和出现的次数 两层for循环将前 ...
- 代码随想录算法训练营第6天 | 454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和
一.Leetcode 454. 四数相加 II 相当于两数相加.但是呢很巧妙的是,卡哥在遍历CD数组时把查哈希表的方法融入了进去.学习一下. 二.Leetcode 383. 赎金信 更简单了,主要是审 ...
- 代码随想录算法训练营第七天| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
Leetcode 454.四数相加II 思路分析: 本题直观的想法是采取暴力法,四数相加就用四层for循环.虽然能得到结果,但时间复杂度为o(n4),当数组长度较大时,Leetcode便提示超时.该方 ...
最新文章
- 如何上手深度学习中的图像处理?有这个代码资源库就够了
- Application与线程同步
- CTFshow 爆破 web26
- Mybatis源码解析之Mybatis初始化过程
- 异常处理——namenode启动成功但是没有namenode进程
- Android应用程序显示未读消息计数
- 社区出入登记1.0.53完整安装包+小程序前端
- 带你一文看懂MySqL中的事务与索引
- 【机器学习】回归案例实践:数据处理建模调参
- md5util java_Java 工具类 - MD5Util
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
- 计算机毕业设计——基于SSM框架的公寓租房管理系统的设计与实现
- php源码 gd,php 源码安装没有gd库
- VMware虚拟机下Ubuntu18.04学校宽带拨号连接网络
- PHP中冒号加引号,冒号的五种用法 冒号引号的三种用法
- gamma correct blurring
- AIOC快速卸载3dsmax2014
- i510300h和r54600h的区别 哪个好
- 一卡通管理系统 模块详细设计
- 这9道软件测试面试题,就能刷掉90%的软件测试员
热门文章
- JavaScript 19. 正则表达式
- SNPassoc全基因组关联分析
- assets路径 资源uri
- 对话CTO | 用声音在一起,听荔枝CTO丁宁聊UGC声音互动平台的技术世界
- keras 受限玻尔兹曼机_受限玻尔兹曼机及实现
- html5 面包屑,CSS第5款:CSS制作面包屑
- JAVA对象头的指针压缩
- [附源码]JAVA+ssm计算机毕业设计高校党建信息平台(程序+Lw)
- 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)
- linux系统mysql服务启动失败