题意 给你一个字符串,然后这个字符串可以重排,一一映射(一个字母可以随便换),比如A映射到Z,B映射到A...
然后再给一个答案字符串,问这个答案字符串能不能由上面的字符串重排映射得到.
思路:
因为可以重排,这提示我们字母的顺序其实根本没有关系.
只需要统计两个字符串中各自字母出现的顺序,然后sort两个计数数组,如果他们的值都一一相等,则说明能通过重排变换得到.
为什么会这样呢..
举个例子 原串 BBBXXX
答案串 VVVAAA 答案是yes 因为你可以把B都映射到V或者A,X同样也是,所以我们不关心他们的字母是多少,只需要知道他们各自的出现次数
代码:
#include
#include
#include
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){ char s1[1145],s2[1145];int cnt1[30],cnt2[30],i,j,k;
while(scanf("%s %s",s1,s2)!=EOF){
{
memset(cnt1,0,sizeof(cnt1));memset(cnt2,0,sizeof(cnt2));
}
int len=strlen(s1);
for(i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?