HJ81 字符串字符匹配 Set妙用 – 三郎君的日常

面试 · 2022年5月30日 0

HJ81 字符串字符匹配 Set妙用

描述

判断短字符串S中的所有字符是否在长字符串T中全部出现。请注意本题有多组样例输入。
数据范围:1\le len(S),len(T)\le200\1≤len(S),len(T)≤200 进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(n)\O(n

输入描述:

输入两个字符串。第一个为短字符串,第二个为长字符串。两个字符串均由小写字母组成。

输出描述:

如果短字符串的所有字符均在长字符串中出现过,则输出字符串”true”。否则输出字符串”false”。

示例1

输入:

bc
abc

输出:

true

说明:

其中abc含有bc,输出"true"
//用Set走捷径!把短字符串的字符加入到Set中,
//把长字符的字符从Set中剔除,如果最后Set为空,则满足条件。
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) { 
            String shortstr = in.nextLine();
            String longstr = in.nextLine();
            Set<Character> set = new HashSet<>();
            for(int i=0;i<shortstr.length();++i){
                set.add(shortstr.charAt(i));
            }
            for(int i=0;i<longstr.length();++i){
                set.remove(longstr.charAt(i));
            }
            System.out.println(set.size()==0);
        }
    }
}