题目
给你两个字符串:
ransomNote
和magazine
,判断ransomNote
能c里面的字符构成。如果可以,返回
true
;否则返回false
。
magazine
中的每个字符只能在ransomNote
中使用一次。
解题思路
- 先获取
ransomNote
中每个字符的数量; - 遍历
ransomNote查看对应元素的数量是否充足。
代码展示
class Solution { public boolean canConstruct(String ransomNote, String magazine) { Map<Character,Integer> data = new HashMap<>(); for(int i = 0; i < ransomNote.length(); i++){ char temp = ransomNote.charAt(i); Integer num = data.getOrDefault(temp, 0); num += 1; data.put(temp, num); } for(int i = 0; i < magazine.length(); i++){ char temp = magazine.charAt(i); Integer num = data.get(temp); if(num != null){ if(num == 1){ data.remove(temp); } else { data.put(temp, num - 1); } } } return data.isEmpty(); } }