⬆︎
×

[PAT-A] 1092 To Buy or Not to Buy

Hyplus目录

Java

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String a = scanner.next();
        String b = scanner.next();
        scanner.close();

        Map<Character, Integer> mp = new HashMap<>();

        for (char c : a.toCharArray()) {
            mp.put(c, mp.getOrDefault(c, 0) + 1);
        }

        for (char c : b.toCharArray()) {
            mp.put(c, mp.getOrDefault(c, 0) - 1);
        }

        int n1 = 0, n2 = 0;
        for (Map.Entry<Character, Integer> entry : mp.entrySet()) {
            int count = entry.getValue();
            if (count > 0) {
                n1 += count;
            } else if (count < 0) {
                n2 -= count;
            }
        }

        if (n2 > 0) {
            System.out.println("No " + n2);
        } else {
            System.out.println("Yes " + n1);
        }
    }
}

C++

#include <iostream>
#include <cstring>
#include <unordered_map>

using namespace std;

string a, b;
unordered_map<char, int> mp;

int main() {
    cin >> a >> b;

    for (auto c: a) mp[c]++;
    for (auto c: b) mp[c]--;

    int n1 = 0, n2 = 0;
    for (auto it: mp) {
        if (it.second > 0) n1 += it.second;
        else n2 -= it.second;
    }

    if (n2 > 0) cout << "No " << n2 << endl;
    else cout << "Yes " << n1 << endl;

    return 0;
}

发表评论