xtu oj Can you raed it croretcly?

Can you raed it croretcly?

题目描述

当你看到这个题目的时候,你是否觉得虽然有点怪,但是也不会读错了? 如果一个单词的首尾字母是一样的,中间的字母只是交换了顺序的话,人很容易“自动”纠错成正确的单词。 现在给你一个单词和其正确的字母排列顺序,请问是否符合上面的规则,让人能很容易自动“纠错”。

输入

存在多组输入样例,读入文件尾部结束。每个样例占一行,为两个字符串,字符串只含英文字母,长度不超过20。

输出

如果两个字符串一致,输出“Equal”;如果可以自动“纠错”,输出“Yes”,否则输出“No”。

样例输入

raed read
it it
croretcly correctly
raed dear

样例输出

Yes
Equal
Yes
No
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int Can(const char *a,const char *b){
	
	int len1 = strlen(a);
	int len2 = strlen(b);
	if(len1!=len2) return 0;
	if(a[0]!=b[0]||a[len1-1]!=b[len1-1]) return 0;
	
	char c[26] = {0};
	char d[26] = {0};
	
	for(int i=1;i<len1-1;++i)
	{
		c[tolower(a[i])-'a']++;//tolower函数是将字符都变成小写
		d[tolower(b[i])-'a']++;//实质上就是比较字母出现的次数
	}
	for(int i=0;i<26;++i)
	{
		if(c[i]!=d[i])
        return 0;
	}
	return 1;
}
int main()
{
	char a[25]={0};
	char b[25]={0};
	
	while(scanf("%s %s",a,b)!=EOF)
	{
		if(strcmp(a,b)==0)
		printf("Equal\n");//strcmp函数用来比较a和b
		else if(Can(a,b)==0)
		{
			printf("No\n");
		}
		else
		printf("Yes\n");
	}
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值