狗の欢乐赛TJ
2024-07-29 10:17:46
发布于:浙江
23阅读
0回复
0点赞
这题看上去啊,跟那个编辑距离(某DP题)一样,然后就有些同学怕了...(哇,这可是DP!不会不会....)
but 这题其实超简单....(毕竟是入门)
首先,AB长度相等,然后你可以无限的交换他们的字符,最后,你
只要判断可不可以就行了!不用输出次数或最优解!
可以的条件咱暂时看不出来,那可以这样思考:
怎样才不可以呢?
可以很容易的想到,只要有字符不一样或多了就不行了,因为多的那个或者不一样的那个你塞哪都不行
即:
所有字符数量肯定相同!!!
由于这题for循环遍历肯定不知道能做,所以我用了跟铜牌差不多的思想,因为这题限制了输入符号范围,我们可以开两个130的数组计数,后面遍历就好了(ASCII码查一下就知道啦)
代码:
#include<bits/stdc++.h>
using namespace std;
string a;
string b;
int c[130];
int d[130];
int main()
{
cin>>a;
cin>>b;
for(int i=0;i<a.size();i++)
{
c[int(a[i])]++;
d[int(b[i])]++;
}
for(int i=0;i<130;i++)
{
if(c[i]!=d[i])
{
cout<<"NO";
return 0;
}
}
cout<<"YES";
return 0;
}
全部评论 1
事实上,这道题不是dp
2024-10-11 来自 浙江
0
有帮助,赞一个