UVA11734_Big Number of Teams will Solve This

题意很简单,本身也是个水题。

给你两个字符串,如果两个串完全相同,那么输出yes;如果两串只是空格的不同,出去空格后完全相同,那么输出Output Format Error,否则输出Wrong Answer。

很简单,在两个数组上面各设置一个指针逐个比对向后移动,同时设置两个flag分别标记有无不相同的字符或者空格就ok了。

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 1000100
using namespace std;

char s1[maxn],s2[maxn];
int n,m,t,x1,x2,T;
bool flag1,flag2;

void compare()
{
    x1=x2=0;
    if (strlen(s1)!=strlen(s2)) flag2=false;
    while (s1[x1] && s2[x2])
    {
        if (s1[x1]==s2[x2]) x1++,x2++;
        else
        {
            if (s1[x1]==' ') x1++;
                else if (s2[x2]==' ') x2++;
                else
                {
                    flag1=false;
                    return;
                }
        }
    }
    if (!s1[x1] && !s2[x2]) return;
    if (s1[x1])
    {
        for (int i=x1; s1[i]; i++)
            if (s1[i]!=' ')
            {
                flag1=false;
                return;
            }
    }
    for (int i=x2; s2[i]; i++)
        if (s2[i]!=' ')
        {
            flag1=false;
            return;
        }
}

int main()
{
    scanf("%d",&T);gets(s1);
    for (int i=1; i<=T; i++)
    {
        flag2=flag1=true;
        gets(s1);gets(s2);
        compare();
        printf("Case %d: ",i);
        if (!flag1) puts("Wrong Answer");
            else if (!flag2) puts("Output Format Error");
            else puts("Yes");
    }
    return 0;
}
如有转载,请注明出处(http://www.cnblogs.com/lochan)
原文地址:https://www.cnblogs.com/lochan/p/3422418.html