寄居蟹與海葵
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結束。
輸出
示例輸入
ABCDEFG ZYXWVUT AHBICJDKELFMGN ZYXWVUT ABCD ZYXWVUT HIJKLMNOPQ ZYXWVUT 0 0
示例輸出
Yes Yes No No
提示
來源
示例程序
這道題是集訓的第一天的練手題,本來是那個找零錢的,咋也沒啃下來。這道題當時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;
}