无语了,我把我现在刷的是水题都忘了,还非要找什么数据结构,媛姐一语指点,如梦方醒,再仔细细读题,原来,新来的如果此时已经没位了,那他是必定要离开的,而有位的不会在没位的离开前离开,这样,此题就变得so easy了,我觉得应把题该为只根据字符串判断,这样,有位的还可能在没位的离开前而离开,这样就腾出来位了。。。。。。算了,不多想了,先刷我的水题吧。。
#include<stdio.h>
#include<string.h>
int sert(char x,int y,char a[])
{
int k=1;
for(;y>=0;y--)
if(a[y]==x)
{
k=0;
break;
}
return k;
}
int main()
{
int i,k,n,len,leave,curr;
char a[53];
scanf("%d",&n);
while(n!=0)
{
getchar();
leave=curr=0;
scanf("%s",a);
len=strlen(a);
for(i=0;i<len;i++)
{
if(sert(a[i],i-1,a))
{
curr++;
if(curr>n)
leave++;
}
else
curr--;
}
if(leave!=0)
printf("%d customer(s) walked away.\n",leave);
else
printf("All customers tanned successfully.\n");
scanf("%d",&n);
}
return 0;
}