蓝桥杯 2. 确定字符串是否是另一个的排列
确定字符串是否是另一个的排列
原题目链接
题目描述
实现一个算法来识别一个字符串 str2
是否是另一个字符串 str1
的排列。
排列的解释如下:如果将 str1
的字符拆分开,重新排列后再拼接起来,能够得到 str2
,那么就说字符串 str2
是字符串 str1
的排列。(不忽略大小写)
如果 str2
是 str1
的排列,则输出 YES
;如果不是,则输出 NO
。
输入描述
- 第一行输入字符串
str1
。 - 第二行输入字符串
str2
。 - 字符串长度均不超过 100。
输出描述
- 输出一行,如果
str2
是str1
的排列,输出YES
; - 如果
str2
不是str1
的排列,输出NO
。
输入输出样例
输入
acb
bac
输出
YES
c++代码
#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