题解 | 字符串字符匹配

#牛客创作赏金赛# #刷题我是认真的#

解题思路:

  1. 依次将短文本的字符放入到Map中,只放一次,value设置为1
  2. 依次将长文本的字符和Map中比较,有的则将原来的value-1
  3. 最后查找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);
    }
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务