构建短字符串
描述
给定任意一个较短的子串,和另一个较长的字符串,判断短的字符串是否能够由长字符串中的字符构建出来,且长串中的每个字符只能用一次。
输入
一行数据包括一个较短的字符串和一个较长的字符串,用一个空格分隔,如:
ab aab
bb abc
aa cccc
输出
如果短的字符串可以由长字符串中的字符构建出来,返回字符串 “true”,否则返回字符串 "false",注意返回字符串类型而不是布尔型。
输入样例
a b
aa ab
aa aab
输出样例
false
false
true
private static String solution(String line) {
// 在此处理单行数据
String a[] = line.split(" ");
String str1 = a[0];
String str2 = a[1];
String[] arr = str2.split("");
Map<String,Integer> map = new HashMap<String,Integer>();
for(int i=0;i<arr.length ;i++){
if(map.containsKey(arr[i])){
map.put(arr[i],map.get(arr[i])+1);
}else{
map.put(arr[i],1);
}
}
String res = "true";
for (int i=0; i<str1.length();i++){
String s = String.valueOf(str1.charAt(i));
if(map.containsKey(s)){
if(map.get(s)-1 < 0){
res = "false";
break;
}
map.put(s,map.get(s)-1);
}else {
res = "false";
break;
}
}
return res;
}