首页 > 其他 > 详细

383. Ransom Note

时间:2019-04-09 17:22:18      阅读:126      评论:0      收藏:0      [点我收藏+]

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;

    }

 

}

383. Ransom Note

原文:https://www.cnblogs.com/MarkLeeBYR/p/10678227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!