LeetCode贖金信、雜誌問題
阿新 • • 發佈:2018-07-22
() put urn hashmap 字符型 lean .get new clas 分析:
利用HashMap這個集合,new的時候使用兩個泛型,key為字符型(Character),value為整數型(Integer),通過存儲magazine中的字母和出現的次數,和ransom中的字符進行比較,如果沒有則直接返回false,否則減value值。
給定一個贖金信 (ransom) 字符串和一個雜誌(magazine)字符串,判斷第一個字符串ransom能不能由第二個字符串magazines裏面的字符構成。如果可以構成,返回 true ;否則返回 false。
(題目說明:為了不暴露贖金信字跡,要從雜誌上搜索各個需要的字母,組成單詞來表達意思。)
註意:
你可以假設兩個字符串均只含有小寫字母。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
利用HashMap這個集合,new的時候使用兩個泛型,key為字符型(Character),value為整數型(Integer),通過存儲magazine中的字母和出現的次數,和ransom中的字符進行比較,如果沒有則直接返回false,否則減value值。
class Solution { public boolean canConstruct(String ransomNote, String magazine) { char[] c = ransomNote.toCharArray(); char[] c1 = magazine.toCharArray(); HashMap<Character,Integer> hm = new HashMap<>(); for(Character character : c1) { if(!hm.containsKey(character)) { hm.put(character, 1); }else { hm.put(character, hm.get(character)+1); } } for(Character character : c) { if(!(hm.containsKey(character))){ return false; }else { if((hm.get(character) -1) < 0) { return false; } hm.put(character, hm.get(character)-1); } } return true; } }
LeetCode贖金信、雜誌問題