zoukankan      html  css  js  c++  java
  • FIX_前缀后缀_未提交

    问题 B: FIX

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 38  解决: 11
    [提交][状态][讨论版]

    题目描述

    如果单词 X 由单词 Y 的前若干个字母构成,我们称 X 是 Y 的前缀,例如“c”、“ca”、“cat”是单词“cat”的前缀;类似地如果单词 X 由单词 Y 的最后若干个字母构成,我们称 X 是 Y的后缀,例如“t”、“at”、“cat”是单词“cat”的后缀。请你编一程序判断一组单词是否满足任一单词都不是其它单词的前缀且任一单词都不是其它单词的后缀。

    输入

    共有 3N+1 行,其中第一行包含一个正整数 N(N<=10),表示要你作出判断的单词总组数,每组单词有三个。接下来的 3N 行每行一个单词,每个单词长度不超过 255。

    输出

    共有 N 行,每行输出一个“Yes”或“No”,表示对相应的三个单词给出的判断结果,满足条件输出“Yes”,不满足条件输出“No”。

    样例输入

    2
    abba
    aab
    bab
    a
    ab
    aa
    

    样例输出

    Yes
    No
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    
    using namespace std;
    
    void revers(char s[],int len){
        int c,j,i;
        for(int i=0,j=len-1;i<j;i++,j--){
            s[i]^=s[j];
            s[j]^=s[i];
            s[i]^=s[j];
        }
    }
    
    int main()
    {
        int n;
        char a[3000];
        char b[3000];
        char c[3000];
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%s",a);
            scanf("%s",b);
            scanf("%s",c);
            int t4=0,t5=0;
            int lena=strlen(a);
            int lenb=strlen(b);
            int lenc=strlen(c);
            int l=0;
            int t1=0,t2=0,t3=0;
            int bbb=0;
            for(int j=0;j<3;j++){
                if(j==0){
                    int l=0;
                    int cou=0;
                    while(a[cou]!=''&&b[cou]!=''){
                        if(a[cou]==b[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lena){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(a[cou]!=''&&c[cou]!=''){
                        if(a[cou]==c[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
                    t1=1;
                }
                if(j==1){
                    int l=0;
                    int cou=0;
                    while(b[cou]!=''&&a[cou]!=''){
                        if(b[cou]==a[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenb){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(b[cou]!=''&&c[cou]!=''){
                        if(b[cou]==c[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenb){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
                    t2=1;
                }
                if(j==2){
                    int l=0;
                    int cou=0;
                    while(c[cou]!=''&&a[cou]!=''){
                        if(c[cou]==a[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(c[cou]!=''&&b[cou]!=''){
                        if(c[cou]==b[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
    
                    }
                    t3=1;
                }
    
                if(t1==1&&t2==1&&t3==1){
                    t4=1;
                    t1=0;
                    t2=0;
                    t3=0;
                }
            }
            if(bbb==1){
                bbb=0;
                continue;
            }
            revers(a,lena);
            revers(b,lenb);
            revers(c,lenc);
            //printf("%s
    ",a);
            //printf("%s
    ",b);
            //printf("%s
    ",c);
    
            l=0;
            t1=0;
            t2=0;
            t3=0;
            bbb=0;
            for(int j=0;j<3;j++){
                if(j==0){
                    int l=0;
                    int cou=0;
                    while(a[cou]!=''&&b[cou]!=''){
                        if(a[cou]==b[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lena){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(a[cou]!=''&&c[cou]!=''){
                        if(a[cou]==c[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
                    t1=1;
                }
                if(j==1){
                    int l=0;
                    int cou=0;
                    while(b[cou]!=''&&a[cou]!=''){
                        if(b[cou]==a[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenb){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(b[cou]!=''&&c[cou]!=''){
                        if(b[cou]==c[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenb){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
                    t2=1;
                }
                if(j==2){
                    int l=0;
                    int cou=0;
                    while(c[cou]!=''&&a[cou]!=''){
                        if(c[cou]==a[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
    
                    l=0;
                    cou=0;
                    while(c[cou]!=''&&b[cou]!=''){
                        if(c[cou]==b[cou]){
                            l++;
                        }
                        cou++;
                    }
                    if(l==lenc){
                        printf("No
    ");
                        bbb=1;
                        break;
                    }
                    t3=1;
                }
    
                if(t1==1&&t2==1&&t3==1){
                    t5=1;
                    t1=0;
                    t2=0;
                    t3=0;
                }
            }
                if(bbb==1){
                    bbb=0;
                    continue;
                }
    
            if(t4==1||t5==1){
                printf("Yes
    ");
                t4=0;
                t5=0;
                continue;
            }
        }
        return 0;
    }
  • 相关阅读:
    LibreOJ2095
    Codeforces
    LibreOJ2241
    LibreOJ2044
    LibreOJ2043
    LibreOJ2045
    LibreOJ2042
    LibreOJ2097
    洛谷P4175
    POJ2888
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5926368.html
Copyright © 2011-2022 走看看