当前位置: 首页 > news >正文

【JS】哈希(数组)解决赎金信问题

思路

  • 本文采用数组方式,创建长度为26的数组,用字母对应的Unicode编码做索引,先将杂志字符串每个字母存储到对应位置,再遍历赎金信字符串,减去数组中对应字母的计数,如果出现计数不够减的情况,返回false。
  • 也可以通过Map对象解决,思路可参照以下笔记:

判断有效的字母异位词icon-default.png?t=O83Ahttps://blog.csdn.net/m0_74662483/article/details/142687420?spm=1001.2014.3001.5501

题目

示例代码

var canConstruct = function (ransomNote, magazine) {// 创建一个长度为 26 的整数数组 strArr,并初始化为 0// 用于统计杂志字符串中每个字母出现的次数const strArr = new Array(26).fill(0);// 获取字符 'a' 的 Unicode 编码值,作为后续计算的基准const base = 'a'.charCodeAt();// 遍历杂志字符串中的每个字符for (const s of magazine) {// 计算当前字符与基准字符 'a' 的编码差值,作为数组的索引// 并将对应位置的计数加 1strArr[s.charCodeAt() - base]++;}// 遍历赎金信字符串中的每个字符for (const s of ransomNote) {// 计算当前字符与基准字符 'a' 的编码差值,作为数组的索引const index = s.charCodeAt() - base;// 如果对应位置的计数为 0,说明该字母在杂志中不够用,无法拼出赎金信,返回 falseif (!strArr[index]) return false;// 将对应位置的计数减 1strArr[index]--;}// 如果遍历完赎金信字符串都没有出现不够用的情况,返回 truereturn true;
};

欢迎指正!


http://www.mrgr.cn/news/53819.html

相关文章:

  • 代码训练营 day41|LeetCode 1049,LeetCode 494,LeetCode 474
  • 零售行业 Web EDI 解决方案——知行之云LIP系统操作详解
  • OCR经典神经网络(三)LayoutLM v2算法原理及其在发票数据集上的应用(NER及RE)
  • Ajax:跨域、防抖和节流、HTTP协议
  • c语言基础程序——经典100道实例。
  • vue3 笔记-插槽
  • RAG拉满:上下文Embedding与大模型Cache的深度融合
  • rabbitMQ消息重复问题怎么解决的?
  • 同济子豪兄--图的基本表示【斯坦福CS224W图机器学习】
  • 面试:了解 ThreadLocal 内存泄漏需要满足的 2 个条件吗?
  • 大话设计模式解读08-外观模式
  • python 函数
  • 嘉兴自闭症咨询全托机构:全面支持孩子成长的专业团队
  • 如何让审批更加的省钱?
  • 什么是DevOps,如何才能获取DevOps相关实践
  • 石墨烯磁表面等离子体
  • 对接金蝶云星空存货档案到MES系统的详细步骤及javajs动态脚本拉取的实现
  • 【C++初阶】一文讲通默认成员函数~类和对象(中)
  • Java项目-基于springboot框架的社区疫情防控平台系统项目实战(附源码+文档)
  • 【MySQL】设置二进制日志文件自动过期,从根源上解决占满磁盘的问题:通过修改 binlog_expire_logs_seconds 配置项
  • 使用C语言实现一个任务调度系统
  • 现代数字信号处理I-P4 CRLB+LMMSE 学习笔记
  • Olap数据处理
  • 智慧社区Web平台:Spring Boot技术实现
  • 高级SQL技巧:掌握数据分析与优化的艺术
  • 自由学习记录(10)