审题出了点问题,思维定式了,每一个字母的密码加减不一定是一样的,题目没说,只不过举例举的这样而已
string的头文件出了点问题,cin>>str要用#include(poj上才能过),而memset却要用#include<string.h>(电脑上才能过)
#include<iostream>
#include<cstdio>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
string str1,str2;
int a[27],b[27];
bool flag=true;
int main()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>str1>>str2;
for(int i=0;i<str1.size();i++)
a[str1[i]-'A'+1]++;
for(int j=0;j<str2.size();j++)
b[str2[j]-'A'+1]++;
sort(a+1,a+27);
sort(b+1,b+27);
for(int i=1;i<=26;i++)
if(a[i]!=b[i]) flag=false;
if(flag) cout<<"YES";
else cout<<"NO";
return 0;
}
本文介绍了一个字符串匹配问题的解决方法,通过使用C++实现了一种比较两个字符串是否为相同字母异位词的算法。该算法首先初始化两个计数数组,然后分别统计两个字符串中每个字母出现的次数,并对这些计数进行排序,最后比较两组计数是否完全相同。

被折叠的 条评论
为什么被折叠?



