• PAT B1029


    PAT B1029


    这道题主要有两个问题需要解决:

    • 如何在不区分大小写的情况下判断第一个字符串中有哪些字符串没有在第二个中出现
    • 如何确保同一个字符(不区分大小写)只输出一次,且英文均用大小写输出

    解决步骤

    1. 对于枚举c1 c2 ,如果是小写字母,则先转换成大写字母,再进行对比。如果相等,说明这个字符在第二行字符中出现过,不予输出。如果不等,则继续枚举,如果c1无法在第二行字符串中找到相等的字符串,则将c1输出。
    2. 对于第二个问题,我们设置一个bool型hashTable[128]来表示字符是否已经输出。

    注意事项

    • 空格也作为需要判断的字符串
    • 大小写不区分,且小写需要转换成大写形式
    • hashTable的大小只要能把题目给出的字符串包括即可,我们用ascii码的个数128为其数组长度
    #include <cstdio>
    #include <cstring>
    
    int main() {
        char str1[100], str2[100];
        bool hashTable[128] = {false};
        fgets(str1, 100, stdin);
        fgets(str2, 100, stdin);
        int len1 = strlen(str1);
        int len2 = strlen(str2);
        for (int i = 0; i < len1; i++) {
            int j;
            char c1, c2;
            for (j = 0; j < len2; j++) {
                c1 = str1[i];
                c2 = str2[j];
                if (c1 >= 'a' && c1 <= 'z') c1 -= 32;
                if (c2 >= 'a' && c2 <= 'z') c2 -= 32;
                if (c1 == c2) break;
            }
            if (j == len2 && hashTable[c1] == false) {
                printf("%c", c1);        //在第二个字符串中未出现c1,且c1未被输出过
                hashTable[c1] = true;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    maven Spring MVC项目
    NET 解析HTML代码——NSoup
    Masstransit开发基于消息传递的分布式应用
    iOS项目生成通用Windows应用
    测试框架mochajs详解
    9宫格拼图
    spring 整合redis
    Linux下SSH Session复制
    File Templates for web.xml & web-fragment.xml (Servlet 2.3, 2.4, 2.5 + 3.0)
    极度简约 最小 Linux 发行版 Tiny Core Linux 7.1 发布
  • 原文地址:https://www.cnblogs.com/Kirarrr/p/10332228.html
Copyright © 2020-2023  润新知