题解 | 字符串字符匹配
解题思路:
- 依次将短文本的字符放入到Map中,只放一次,value设置为1
- 依次将长文本的字符和Map中比较,有的则将原来的value-1
- 最后查找value>0的,如果有,则表示不包括,没有则表示包括
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String shortStr = in.next();
String longStr = in.next();
char[] sArr = shortStr.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < sArr.length; i++) {
int count = map.getOrDefault(sArr[i], 0);
if (count == 0) {
map.put(sArr[i], 1);
}
}
char[] lArr = longStr.toCharArray();
for (int i = 0; i < lArr.length; i++) {
int count = map.getOrDefault(lArr[i], 0);
if (count > 0) {
map.put(lArr[i], count - 1);
}
}
boolean rs = map.values().stream().noneMatch(v->v > 0);
System.out.println(rs);
}
}
