11-用杂志拼接信件(蓝桥杯)

题目描述

实现一个算法确定能否由杂志构成信件。介绍如下:

影视剧中信件大多是从报纸或杂志上的字符剪下来拼接而成的。

杂志和信件均由字符串构成,对于给定的杂志和信件,确定信件是否可以由杂志上的字符构成。

例如杂志为 ab,信件为 aa,则不能构成。杂志为 aab,信件为 aa,则可以构成。

输入描述

输入两行字符串,长度均不超过 100。

第一行为杂志字符串,第二行为信件字符串。

输出描述

输出一行,若信件可由杂志构成则输出 YES,否则输出 NO

输入输出样例

示例

输入
ab
aa
输出
NO

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 256M

源码:

package secondTest;

import java.util.Scanner;

public class 用杂志拼接信件 {

    public static void main(String[] args) {
        //ASCII码从32到126为可显示字符
        Scanner scanner = new Scanner(System.in);
        String magazine=scanner.nextLine();
        String letter=scanner.nextLine();
        if (letter.length()>magazine.length()) {
            System.out.println("NO");
            return;
        }
        int[] arr=new int[126-32+1];
        for (int i = 0; i < magazine.length(); i++) {
            arr[magazine.charAt(i)-32]++;
        }
        for (int i = 0; i < letter.length(); i++) {
            arr[letter.charAt(i)-32]--;
            if (arr[letter.charAt(i)-32]<0) {
                System.out.println("NO");
                return;
            }
        }
        System.out.println("YES");
    }

}

你可能感兴趣的:(蓝桥杯备战题,算法,蓝桥杯)