首页 > 其他分享 >PAT Basic 1029. 旧键盘

PAT Basic 1029. 旧键盘

时间:2023-03-16 20:36:34浏览次数:30  
标签:文字 输出 PAT 坏键 1029 char Basic chCount 输入

PAT Basic 1029. 旧键盘

1. 题目描述:

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

2. 输入格式:

输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。

3. 输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。

4. 输入样例:

7_This_is_a_test
_hs_s_a_es

5. 输出样例:

7TI

6. 性能要求:

Code Size Limit
16 KB
Time Limit
200 ms
Memory Limit
64 MB

思路:

这里根据题目描述有文字只由字母,数字和下划线组成,并且最后输出字母时只输出大写,所以我当时定义了字符数组chCount用于按先后顺序统计输入文字中存在的字符,并且字母只统计大写字母。

然后就是根据chCount和输出文字去判断坏键,这里chCount保证了坏键只被输出一次。并且一个字母键如果坏掉,那么大小写字母是都不可能在输出中出现的。另外就是这里用到了库函数strchr()toupper(),tolower()

不知道当时怎么来的思路。。。现在回看真没想出来。

My Code:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

// A-Z, 0-9, '_' sum up to 26+10+1 = 37 characters

int main(void)
{
    char in[81];
    char out[81];
    char chCount[38];
    int count = 0, i;
    char *pchar;
    
    scanf("%s%s", in, out);
    
//     printf("%s\n", in);
//     printf("%s\n", out);
    
    for(i=0; i<38; i++)
    {
        chCount[i] = '\0';
    }
    
    pchar = in;
    while(*pchar)
    {
        // char *strchr(const char *str, int c)
        if(strchr(chCount, toupper(*pchar)) == NULL)
        {
            chCount[count] = toupper(*pchar);
            count++;
        }
        pchar++;
    }
    
    //printf("%s\n", chCount);
    
    for(i=0; i<count; i++)
    {
        if(strchr(out, chCount[i]) == NULL && strchr(out, tolower(chCount[i])) == NULL)
        {
            printf("%c", chCount[i]);
        }
    }
    printf("\n");
    
    
    return 0;
}

标签:文字,输出,PAT,坏键,1029,char,Basic,chCount,输入
From: https://www.cnblogs.com/tacticKing/p/17224019.html

相关文章

  • vuex TypeError: Cannot read properties of undefined (reading ‘dispatch‘)
      1、入口文件main.js  2、或者版本不匹配 vue2安装3版本的vuex,默认安装的4版本给vue3用//卸载原来安装的vuexnpmuninstallvuex//安装3.6.2版本的vuexnpm......
  • 使用patch-package定制node_modules 中的依赖包
    背景:首先,需求是这样,Vue项目中使用的是iview第三方UI库,要修改组件DatePicker中默认选中的当日的日期(如下图),实现无论在哪个时区,均显示中国的日期   由于,iview提供的a......
  • singleton pattern
    C1.overviewp1.conceptproblemsPeoplecanusereflectmechanismtocreateotherinstancetoviolatesingleton.ThesafetyofthreadInstructionreordering......
  • diff 命令 , patch
    关于diff命令:      接下来看合并:    关于Patch  ......
  • 解决 The bean 'xxx', defined in class path resource [], could not be registered.
    问题:在实现短信发送拦截功能时,创建了PassportInterceptor验证码拦截器类,使用了@Conponent注解;同时创建了InterceptorConfig拦截器配置类,使用了@Conponent注解,并使用@......
  • spingboot-context-path-默认值以及配置
    springboot项目的context-path的默认值:/可以在application.yml配置文件中自行配置:SpringBoot2.0.0.RELEASE版本以及之后server:port:80servlet:context-path:......
  • 爬虫入门--xpatch
    XPath是一门在XML文档中查找信息的语言。XPath使用路径表达式在XML文档中进行导航。XPath包含一个标准函数库。XPath是XSLT中的主要元素。XPath是一个W3C......
  • 10 url-pattern的匹配规则
    ​ URL的匹配规则精确匹配精确匹配是指<url-pattern>中配置的值必须与url完全精确匹配。<servlet-mapping><servlet-name>demoServlet</servlet-name><......
  • 10 url-pattern的匹配规则
    ​ URL的匹配规则精确匹配精确匹配是指<url-pattern>中配置的值必须与url完全精确匹配。<servlet-mapping><servlet-name>demoServlet</servlet-name><......
  • PAT Basic 1028. 人口普查
    PATBasic1028.人口普查1.题目描述:某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一......