leetcode Ransom Note
阿新 • • 發佈:2018-12-25
Ransom Note 贖金條
贖金字串的內容包含在雜誌字串中,贖金字串中每個字元出現的次數小於對應的雜誌字串中每個字串出現的次數。
思路:建立兩個map,統計每個字串中每個字元出現的次數。
public static void main(String[] args) { String ransomNote="a"; String magazine="b"; // String ransomNote="aa"; // String magazine="ba"; // String ransomNote="aa"; // String magazine="aab"; boolean b = canConstruct(ransomNote, magazine); System.out.println(b); } public static boolean canConstruct(String ransomNote, String magazine) { Map<Character, Integer> characterIntegerMap = changeCanConstructChangeMap(ransomNote); Map<Character, Integer> characterIntegerMap2 = changeCanConstructChangeMap(magazine); System.out.println(characterIntegerMap); System.out.println(characterIntegerMap2); for (Character character : characterIntegerMap.keySet()) { if(!characterIntegerMap2.containsKey(character)){ return false; }else{ Integer integer = characterIntegerMap.get(character); Integer integer2 = characterIntegerMap2.get(character); if(integer>integer2){ return false; } } } return true; } public static Map<Character,Integer> changeCanConstructChangeMap(String ransomNote){ Map<Character,Integer> map=new HashMap<>(); for(int i=0;i<ransomNote.length();i++){ char c = ransomNote.charAt(i); if(map.containsKey(c)){ map.put(c,map.get(c)+1); }else{ map.put(c,1); } } return map; }