383. Ransom Note

Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.

Each letter in the magazine string can only be used once in your ransom note.

Note:
You may assume that both strings contain only lowercase letters.

example : canConstruct("a", "b") -> false canConstruct("aa", "ab") -> false canConstruct("aa", "aab") -> true

//判断杂志上的字是否能够组成勒索信需要的那些字符。 这里需要注意的就是杂志上的字符只能被使用一次,不过不用考虑大小写的问题。

class Solution {

    public boolean canConstruct(String ransomNote, String magazine) {

        int[] arr = new int[26];//用数组记录magazine每个字符出现次数

        for (int i = 0; i < magazine.length(); i++)

            arr[magazine.charAt(i) - 'a']++; //a出现则arr[0]加1,b则arr[1]加1,c则arr[2]加1

        for (int i = 0; i < ransomNote.length(); i++) {

            if (--arr[ransomNote.charAt(i) - 'a'] < 0) //ransomNote出现个字符,字符对应值减一

                return false;

        }

        return true;

    }

 

}

posted @   MarkLeeBYR  阅读(98)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示