给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
package com.pshdhx.Algorithm.easy;
import java.util.HashMap;
import java.util.Map;
/**
* @author pshdhx
* @date 2022-03-22 15:35
* @Des
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
*/
public class 赎金信 {
public boolean canConstruct(String ransomNote, String magazine) {
Map<Character,Integer> map2 = new HashMap<>();
for(int i=0;i<magazine.length();i++){
char c = magazine.charAt(i);
map2.put(c,map2.getOrDefault(c,0)+1); //如果首次出现,则+1;每多出现一次,则+1;
}
for(int i=0;i<ransomNote.length();i++){
char c1 = ransomNote.charAt(i);
if(map2.containsKey(c1)){ //如果map中有值
if(map2.get(c1)>0){ //且value值的个数>0
map2.put(c1,map2.get(c1)-1);
}else{
return false;
}
}else{
return false;
}
}
return true;
}
public static void main(String[] args) {
boolean b = new 赎金信().canConstruct("aa", "aab");
System.out.println(b);
}
}
?
|