美文网首页PAT
1033.旧键盘打字

1033.旧键盘打字

作者: yzbkaka | 来源:发表于2018-08-08 16:23 被阅读4次

    题目描述

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

    输入描述

    输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过10^5个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
    注意:如果上档键坏掉了,那么大写的英文字母无法被打出。

    输出描述

    在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。

    输入例子

    7+IE.
    7_This_is_a_test.

    输出例子

    _hs_s_a_tst

    我的代码

    #include<stdio.h>
    #include<string.h>
    #define N 100000
    int main(){
        char a[N],b[N],c[N];
        long long i,j,len1,len2,p=0,t=0,m=0;
        scanf("%s",a);
        scanf("%s",b);
        len1=strlen(a);
        len2=strlen(b);
        
        for(i=0;i<len1;i++){   //查找是否有+
            if(a[i]=='+'){
                p++;
                break;
            }
        }
        
        if(p!=0){    //有加号 
            for(i=0;i<len2;i++){
                for(j=0;j<len1;j++){
                    if(!(b[i]==a[j]||b[i]==a[j]+32||(b[i]>=65&&b[i]<=90))){
                        t++;
                        if(t==len1){
                           c[m]=b[i];
                           m++; 
                        }
                    }
                }
                t=0;
            }
        }
        
        if(p==0){    //没有加号 
                for(i=0;i<len2;i++){
                for(j=0;j<len1;j++){
                    if(!(b[i]==a[j]||b[i]==a[j]+32)){
                        t++;
                        if(t==len1){
                           c[m]=b[i];
                           m++; 
                        }
                    }
                }
                t=0;
            }
            
        }
        
        puts(c);
        return 0; 
    } 
    

    我的分析

    这道题和之前的1019.旧键盘的思路差不多,就是用两个循环在字符串中进行搜索,寻找有没有满足要求的字符。只不过这一道题多出来了一个判断是否有+的一个循环,我这里就是用p的数值来表示,一旦在搜索中找到了+,就将p的值+1,然后立即跳出循环,再在后面用两个if语句来分情况讨论。

    相关文章

      网友评论

        本文标题:1033.旧键盘打字

        本文链接:https://www.haomeiwen.com/subject/rsdxbftx.html