题解 | 字符串字符匹配
解题思路:
- 依次将短文本的字符放入到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); } }