美文网首页
PAT Basic 1093. 字符串A+B (C语言实现)

PAT Basic 1093. 字符串A+B (C语言实现)

作者: OliverLew | 来源:发表于2019-02-08 10:45 被阅读11次

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。此处文章目前已更新至与Github Pages同步。欢迎star我的repo

    题目

    给定两个字符串 AB ,本题要求你输出 A+B ,即两个字符串的并集。要求先输出 A ,再输出 B ,但
    重复的字符必须被剔除

    输入格式:

    输入在两行中分别给出 AB ,均为长度不超过 10^6 的、由可见 ASCII 字符
    (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。

    输出格式:

    在一行中输出题面要求的 AB 的和。

    输入样例:

    This is a sample test
    to show you_How it works
    

    输出样例:

    This ampletowyu_Hrk
    

    思路

    用C语言做字符串的题,真是其乐无穷

    又到了创建128长度字符数组的时候了:用字符的ascii码作为数组索引是最简单的处理方式。

    这道题具体思路就是 逐字符 读取,无需保留整个字符串(长度不超过 10^6 就是为了那些不方便逐字符读取的语言准备的,C语言根本不需要这个限制好吧~)。

    读到的字符在ascii数组(就这么叫了)增加个计数,这样下次在读到时,就不做任何事情就好了。

    循环控制就是用换行符的数量,读到第二个就退出去。

    代码

    最新代码@github,欢迎交流

    #include <stdio.h>
    
    int main()
    {
        char c;
        int lines = 0, ascii[128] = {0};
    
        while(lines < 2)
        {
            c = getchar();
            if(c == '\n')
                lines++;
            else if(!ascii[(int)c])
            {
                putchar(c);
                ascii[(int)c]++;
            }
        }
    
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:PAT Basic 1093. 字符串A+B (C语言实现)

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