蓝桥杯 2. 确定字符串是否是另一个的排列

确定字符串是否是另一个的排列

原题目链接

题目描述

实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列。

排列的解释如下:如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2,那么就说字符串 str2 是字符串 str1 的排列。(不忽略大小写)

如果 str2str1 的排列,则输出 YES;如果不是,则输出 NO


输入描述

  • 第一行输入字符串 str1
  • 第二行输入字符串 str2
  • 字符串长度均不超过 100。

输出描述

  • 输出一行,如果 str2str1 的排列,输出 YES
  • 如果 str2 不是 str1 的排列,输出 NO

输入输出样例

输入

in 复制代码
acb
bac

输出

out 复制代码
YES

c++代码

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;

int main() {
    string str1, str2;
    unordered_map<int, int> mp;
    cin >> str1 >> str2;
    for (char a : str1) mp[a]++;
    for (char b : str2) {
        if (mp.find(b) == mp.end() || mp[b] == 0) {
            cout << "NO";
            return 0;
        }
        mp[b]--;
    }
    cout << "YES";
    return 0;
}//by wqs
相关推荐
艾莉丝努力练剑10 小时前
【C++:map和set的使用】C++ map/multimap完全指南:从红黑树原理入门到高频算法实战
大数据·开发语言·c++·人工智能·stl·map
墨染点香12 小时前
LeetCode 刷题【144. 二叉树的前序遍历】
数据结构·算法·leetcode
cynicme16 小时前
力扣3318——计算子数组的 x-sum I(偷懒版)
java·算法·leetcode
ShineSpark18 小时前
Crashpad 在windows下编译和使用指南
c++·windows
Larry_Yanan19 小时前
QML学习笔记(五十)QML与C++交互:QML中单例C++对象
开发语言·c++·笔记·qt·学习·ui·交互
im_AMBER19 小时前
算法笔记 09
c语言·数据结构·c++·笔记·学习·算法·排序算法
凯芸呢19 小时前
Java中的数组(续)
java·开发语言·数据结构·算法·青少年编程·排序算法·idea
寂静山林20 小时前
UVa 1030 Image Is Everything
算法
AI柠檬20 小时前
几种排序算法的实现和性能比较
数据结构·算法·c#·排序算法