489

来源:互联网 发布:nginx宕机原因 编辑:程序博客网 时间:2024/06/06 17:14

紫书例题4-2;啥都不说又做错了,时间超限,看来以后要改做题方法了;贴上大神代码;

#include <iostream>#include<stdio.h>#include<string>#include<cstring>#include<cmath>#include<algorithm>#define N 22222using namespace std;char s1[N];char s2[N];char a[N];int main(){    int n;    while(~scanf("%d",&n))    {if(n==-1)break;scanf("%s%s",s1,s2);int len1=strlen(s1);int len2=strlen(s2);memset(a,0,sizeof a);for(int i=0;i<len1;i++)    a[s1[i]-'a']++;//计算出每个字母出现的个数int ok=0;int i,flag=0;for(i=0;i<len2;i++){    if(a[s2[i]-'a'])    {len1-=a[s2[i]-'a']; a[s2[i]-'a']=0;//记得把已经出现过的单词清0,不然会wa,再次出现同样单词算一次猜错,因为该单词已全部显示    }    else flag++;    if(flag==7){ok=1;break;}//lose    if(len1<=0){ok=2;break;}//win} printf("Round %d\n",n);if(ok==1) printf("You lose.\n");else if(ok==2) printf("You win.\n");elseprintf("You chickened out.\n");    }    return 0;}


我的垃圾小代码:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <iomanip>#include <algorithm>using namespace std;int main(){    int n;    while(cin>>n&&n!=-1){       string s1,s2;       cin>>s1>>s2; int k=0,h=0;       int len1=s1.length(),len2=s2.length();       for(int i=0;i<len2;i++){          for(int j=0;j<len1;j++){             if(s2[i]==s1[j]){               int flag=1;               for(int p=0;p<i;i++)                  if(s2[i]==s2[p])                     flag=0;               if(flag==1){                 k++; break;               }             }          }       }       h=len2-k;       cout<<"Round "<<n<<endl;       if(k<=6&&h==0)         cout<<"You win."<<endl;       else if(k<6&&h>0&&h<=7)         cout<<"You chickened out."<<endl;       else if(k<6&&h>=7)         cout<<"You lose."<<endl;    }    return 0;}


0 0
原创粉丝点击