/*
题目
1)简介
输入:正则表达式字符串 待匹配字符串,如果输入”### ###”程序终止,
输出:如匹配成功,输出整个字符串,如果匹配不成功,输出lost,然后等待下一次用户的输入。
^ 代表字符串开始
. 代表任意字符
$ 代表字符串末尾
2)参考输入,输出
^a.$ abc ←regular express and target string (separate by space),input
lost ←result, output
ab.$ ababc ←regular express and target string (separate by space), input
ababc ←match successfully, print the target string, output
### ### ←input ### ### 结束整个程序
*/
#include <stdio.h>
#include <string.h>
#define X 20
int main()
{
int i,j,x1,x2,u,flag,ret,w;
char str1[X],str2[X];
for(u=0;;u++)
{
scanf("%s",str1);
scanf("%s",str2);
x1=strlen(str1);
x2=strlen(str2);
flag=0;
if(x1==3&&x2==3)
{
for(i=0;i<3;i++)
{
if(str1[i]!='#'||str2[i]!='#')
flag++;
}
if(flag==0)
return 0;
}
if(str1[0]=='^')/*1&2*/
{
if(str1[x1-1]=='$')
{
if(x1==x2+2)
for(i=1;i<x1-1;i++)
{
if(str1[i]!='.')
{
if(str1[i]!=str2[i-1])
{
printf("lost\n");
break;
}
else
{
if(i==x1-2)
{
puts(str2);
break;
}
}
}
else
continue;
}
else
printf("lost\n");
}
else/*2*/
{
if(x2<x1-1)
printf("lost\n");
else
for(i=1;i<x1;i++)
{
if(str1[i]!='.')
{
if(str1[i]!=str2[i-1])
{
printf("lost\n");
break;
}
else
if(i==x1-1)
{
puts(str2);
break;
}
}
else
continue;
}
}
}
else/*3&4*/
{
if(str1[x1-1]=='$')/*3*/
{
if(x2<x1-1)
printf("lost\n");
else
{
for(i=x1-2;i>=0;i--)
{
if(str1[i]!='.')
{
if(str1[i]!=str2[x2-x1+i+1])
{
printf("lost\n");
break;
}
else
{
if(i==0)
{
puts(str2);
break;
}
}
}
}
}
}
else/*4*/
{
ret = 0;
if(x1>x2)
printf("lost\n");
else
{
for(w=0;w<x1;w++)
if(str1[w]!=0)
break;
for(j=w;j<x2;j++)
{
if(str1[w]==str2[j])
for(i=1;i<x1-w;i++)
{
if(str1[i+w]!='.')
{
if(str1[i+w]!=str2[i+j])
break;
else
{
if(i+w==x1-1)
{
ret=1;
puts(str2);
}
}
}
}
if(ret==1)
break;
}
if(ret!=1)
printf("lost\n");
}
}
}
}
return 0;
}