首页 > 其他分享 >Leetcode 383. 赎金信(Ransom note)

Leetcode 383. 赎金信(Ransom note)

时间:2023-08-27 23:55:57浏览次数:42  
标签:Ransom ransomNote arr false map note magazine 383 char

题目链接

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:

输入:ransomNote = "a", magazine = "b"
输出:false

示例 2:

输入:ransomNote = "aa", magazine = "ab"
输出:false

提示:

  • 1 <= ransomNote.length, magazine.length <= 105
  • ransomNote 和 magazine 由小写英文字母组成

思路

这题的大意就是字符串A能否组成字符串B, 这里两个思路, 一个是使用HashMap将A串字符作为Key存入, Value是出现次数. 再用B减去.

第二种方法是使用数组也是类似的方法.

代码实现

HashMap:

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        Map<Character, Integer> map = new HashMap<>();
        for(char c : magazine.toCharArray()) {
            map.put(c, map.getOrDefault(c, 0) + 1);
        }

        for(char c : ransomNote.toCharArray()) {
            map.put(c, map.getOrDefault(c, 0) - 1);
            if(map.get(c) < 0) {
                return false;
            }
        }

        return true;
    }
}

数组:

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        int[] arr = new int[26];
        for(char c : magazine.toCharArray()) {
            arr[c - 'a'] += 1;
        }

        for(char c : ransomNote.toCharArray()) {
            arr[c - 'a'] -= 1;
        }

        for(int i : arr) {
            if(i < 0) {
                return false;
            }
        }

        return true;
    }
}

标签:Ransom,ransomNote,arr,false,map,note,magazine,383,char
From: https://www.cnblogs.com/ahci316/p/17661152.html

相关文章

  • 「Note」图论方向 - 网络流
    1.网络流1.1.定义1.1.1.网络网络是指一个有向图\(G=(V,E)\),每条边\((u,v)\inE\)有一个权值,\(c(u,v)\)称为容量,当\((u,v)\notinE\)时,有\(c(u,v)=0\)。特殊地,在图中有源点、汇点两点,分别为\(s\inV,t\inV\)。1.1.2.流设流函数\(f(u,v)\to\R(u,v\inV)\)表示......
  • 【主席树】洛谷 P3834 可持久化线段树 2
    【主席树】洛谷P3834可持久化线段树2题目链接:https://www.luogu.com.cn/problem/P3834主席树是可持久化线段树的一种,也叫做可持久化权值线段树,主要可以用来O(logn)求静态区间的第k小数。总所周知,普通线段树每次修改会遍历logn个点,那么我们在每次修改时都把这logn个点复制一份......
  • Endnote下载-Endnote正版下载 中文版直装
    EndNote绿色中文版可以帮助用户更好的管理文献文件,软件可以帮助用户一键获取PDF全文、管理个人参考文献、在线数据库查找、过滤器、参考书创建输出样式等功能。还可以协助用户更好的管理和研究参考书文献,具备了非常人性化的操作界面。软件地址:看置顶贴软件特色1、随处工作......
  • Endnote下载-Endnote电脑版下载 中文版直装
    软件特色组织参考文献并为您的研究论文创建参考书目,以简单的方式管理您的文档并更轻松地构建项目。团队访问一个参考库:从单个参考图书馆(最多100人)开始工作,无论他们身在何处或与他们有关联的组织。在几秒钟内完成多年的工作:搜索参考元数据,全文期刊文章,文件附件以及您的个人注释和注......
  • CSAPP Notes ML Programming
    CSAPPNotes:MLProgrammingComputerSystem-Notes:MLProgramming本课程主要使用x86指令;CISC(复杂指令集);ARM属于RISC(精简指令集);g++和gccg++和gcc都是GNUCompilerCollection(GNU编译器集合)中的工具,用于编译源代码并生成可执行文件。然而,它们之间有一些区......
  • CSAPP Notes: Types
    CSAPPNotes,类型随手写的,可能会有错误();类型数据类型大小char1bool1shortint(short)2int4longint(long)4或8(取决于平台)longlongint8float4double8longdouble8或16(取决于平台)wchar_t2或4(取决于平台)size......
  • 「Note」数据结构方向 - 数据结构进阶
    1.平衡树咕咕咕2.树套树咕咕咕3.LCT3.1.介绍3.1.1.基本概念LCT全名Link-Cut-Tree,动态树,是用来维护动态森林的数据结构。它支持以下操作(需要保证任意操作时刻维护的都为森林):连边。断边。换根。提取路径信息。LCT的大体思路是将每棵树拆分为若干条链,并用平衡......
  • 「Note」图论方向 - 图论进阶
    1.2-SAT1.1.介绍对于一些节点,每个节点存在两个状态(非\(0\)即\(1\)),我们给出一些如下类型的限制条件:节点\(i\)状态为\(1/0\)。若节点\(i\)状态为\(1/0\),那么节点\(j\)状态为\(1/0\)。节点\(i,j\(i\not=j)\)至少有一个为\(1/0\)。2-SAT算法用于解决类似的......
  • 开发调试更便捷!火山引擎 DataLeap 提供 Notebook 交互式开发体验
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群Notebook是一种支持REPL模式的开发环境。所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook通常使得探索性的开发和调试更加便捷,在Notebo......
  • 开发调试更便捷!火山引擎 DataLeap 提供 Notebook 交互式开发体验
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 Notebook是一种支持REPL模式的开发环境。 所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook通常使得探索性的开发和调试更加便......