寄居蟹与海葵

寄居蟹与海葵

Time Limit: 1000MS Memory limit: 65536K

题目描述

寄居蟹与海葵是一对合作互助的共栖伙伴。海葵是寄居蟹最称职的门卫。它用有毒的触角去蜇那些敢来靠近它们的所有动物,保护寄居蟹。而寄居蟹则背着行动困难的海葵,四出觅食,有福同享。
但并不是所有寄居蟹和海葵都可以做搭档的。那就要看海葵的身体是不是符合寄居蟹的螺壳。
海葵的身体是有褶皱的,而寄居蟹的螺壳同样凹凸不平,我们可以用一个大写字母组成的字符串来表示它们的高低程度,其中A代表0,B代表1,依次类推。我们称两者相加等于25的就算是吻合,比如A和Z相吻合,B与Y吻合,依次类推。
只要海葵身体的部分序列与寄居蟹外壳的序列相吻合,就称他们可以一起生活。
比如:
1.海葵的褶皱是"ABCDEFG",寄居蟹是"ZYXWVUT"。这样,它们就可以完全吻合了。
2.海葵的褶皱是"AHBICJDKELFMGN",寄居蟹是"ZYXWVUT"。这样,寄居蟹可以和海葵的部分序列"ABCDEFG"相吻合 (注意:部分序列不改变字符原来的先后顺序,比如"ACB"就不是它的部分序列)。
3.海葵的褶皱是"ABCD",寄居蟹是"ZYXWVUT"。这样,虽然海葵可以和寄居蟹前面一段完全吻合,但它比寄居蟹要小,不能完全保护寄居蟹的安全,所有它们是不适合的。
4.海葵的褶皱是"HIJKLMNOPQ",寄居蟹是"ZYXWVUT"。这样,它们就可以完全不吻合了。
现给你两段字符串S1、S2,分别代表海葵和寄居蟹的外壳,为了它们以后各都能快乐地生活,请你帮忙计算一下它们是不是吻合的。

输入

输入包括多组测试数据。
每组测试数据包括两个字符串H、J,分别代表海葵的外壳和寄居蟹的外壳。可以保证它们的长度都小于100000。
输入以0 0结束。

输出

如果寄居蟹和海葵的外壳能吻合,就输出"Yes",否则输出"No"。

示例输入

ABCDEFG ZYXWVUT
AHBICJDKELFMGN ZYXWVUT
ABCD ZYXWVUT
HIJKLMNOPQ ZYXWVUT
0 0

示例输出

Yes
Yes
No
No

提示

 

来源

ZJGSU

示例程序

这道题是集训的第一天的练手题,本来是那个找零钱的,咋也没啃下来。这道题当时if(i==k2-1&&lon==155) {flag1=1;flag=0;}写成if(i=k2-1&&lon==155) {flag1=1;flag=0;}愣是半天没找到哪错了!!客气,你发现了吗看==和=。

#include<stdio.h>
#include<string.h>
int main()
{
	int i,j,k1,k2,flag,lon,flag1;
	char st1[100000],st2[100000];
	while(scanf("%s%s",st1,st2)!=EOF)
	{
		flag=1;
		if(st1[0]=='0'&&st2[0]=='0') break;
		k1=strlen(st1);
		k2=strlen(st2);
		
		j=0;
		for(i=0;i<=k2-1;i++)
		{
			flag1=0;
			for(j=j;j<=k1-1&&flag1==0;j++)
			{
			lon=(st1[j]+st2[i]);
			//if(lon!=155) flag=1;
				if(i==k2-1&&lon==155) {flag1=1;flag=0;}
		        else	if(lon==155) flag1=1;
				else flag1=0;
		
			
			}
		}
	
        //if(k2>k1) flag=1;
		if(flag==0) printf("Yes\n");
		else printf("No\n");
		
		
	}
	return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值