码迷,mamicode.com
首页 > 编程语言 > 详细

Java [Leetcode 383]Ransom Note

时间:2016-08-17 01:28:15      阅读:282      评论: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.

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

解题思路:

开26个数组存入magzine字母的数目,每个位置存对应字母的数目;

对ransom字符串来说,每读一个字母,则将对应位置的字母数目减一,如果某个字母数目小于0了,则表明字母不够用,从而返回false;否则返回true。

代码如下:

public class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
    	int[] ran_array = new int[26];
    	for(int i = 0; i < magazine.length(); i++){
    		ran_array[magazine.charAt(i) - ‘a‘]++;
    	}

    	for(int i = 0; i < ransomNote.length(); i++){
    		if(--ran_array[ransomNote.charAt(i) - ‘a‘] < 0)
    			return false;
    	}

    	return true;
        
    }
}

  

Java [Leetcode 383]Ransom Note

标签:

原文地址:http://www.cnblogs.com/zihaowang/p/5778378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!