夜之家 » 日志 » Train Problem I
Train Problem I
夜之护者 发表于 2007-07-18 20:26:04
HDU 上的,
http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I
也是今天做的,MS代码还算短,也帖下吧。不过主要是因为刚申请的博客,呵呵!
#include<stdio.h>
#define MAXN 1000
int main()
{
long n,i,j,top,num2,x[MAXN],num,flag;
char s1[MAXN],s2[MAXN],a[MAXN];
while(scanf("%ld",&n)==1)
{
scanf("%s%s",s1,s2);
num2=num=0;
top=flag=0;
a[0]=-1;
for(i=0;i<n;i++)
{
a[top++]=s1[i];
x[num++]=1;
while(a[top-1]==s2[num2])
{
top--;
num2++;
x[num++]=0;
}
}
if(num2<n)
printf("No.\nFINISH\n");
else
{
printf("Yes.\n");
for(i=0;i<num;i++)
{
if(x[i])
printf("in\n");
else
printf("out\n");
}
printf("FINISH\n");
}
}
return 0;
}
注释就不写了,就是栈的应用,或许以后有空会来添注释吧,^_^。
http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I
也是今天做的,MS代码还算短,也帖下吧。不过主要是因为刚申请的博客,呵呵!
#include<stdio.h>
#define MAXN 1000
int main()
{
long n,i,j,top,num2,x[MAXN],num,flag;
char s1[MAXN],s2[MAXN],a[MAXN];
while(scanf("%ld",&n)==1)
{
scanf("%s%s",s1,s2);
num2=num=0;
top=flag=0;
a[0]=-1;
for(i=0;i<n;i++)
{
a[top++]=s1[i];
x[num++]=1;
while(a[top-1]==s2[num2])
{
top--;
num2++;
x[num++]=0;
}
}
if(num2<n)
printf("No.\nFINISH\n");
else
{
printf("Yes.\n");
for(i=0;i<num;i++)
{
if(x[i])
printf("in\n");
else
printf("out\n");
}
printf("FINISH\n");
}
}
return 0;
}
注释就不写了,就是栈的应用,或许以后有空会来添注释吧,^_^。
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
