• 九度OJ 1111:单词替换 (查找)


    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:4473

    解决:1268

    题目描述:

    输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

    输入:
    多组数据。每组数据输入包括3行,
    第1行是包含多个单词的字符串 s,
    第2行是待替换的单词a,(长度<=100)
    第3行是a将被替换的单词b。(长度<=100)
    s, a, b 最前面和最后面都没有空格.

    输出:
    每个测试数据输出只有 1 行,
    将s中所有单词a替换成b之后的字符串。

    样例输入:
    You want someone to help you
    You
    I
    样例输出:
    I want someone to help you
    来源:
    2007年北京大学计算机研究生机试真题

    思路:

    用二维字符串数组存储,查找字符串并替换即可,复杂度O(n)。

    如果有很多单词要被替换,就要考虑排序了。此题并不需要。


    代码:

    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
     
    #define M 100
     
    int main(void)
    {
        int i;
        int n;
        char a[M][M+1], b[M+1], c[M+1], tmp[M+1];
     
        while (gets(tmp))
        {
            n = 0;
            i = 0;
            while (tmp[i])
            {
                sscanf(tmp+i, "%s", a[n++]);
                while(isalpha(tmp[i]))
                    i ++;
                if (tmp[i] == ' ')
                    i ++;
            }
     
            scanf("%s", b);
            scanf("%s", c);
            getchar();
     
            for (i=0; i<n; i++)
            {
                if (strcmp(a[i], b) == 0)
                    strcpy(a[i], c);
            }
     
            for (i=0; i<n-1; i++)
                printf("%s ", a[i]);
            printf("%s
    ", a[i]);
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1111
        User: liangrx06
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:916 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    Maven入门
    sdk&jdk&jre
    常用git指令
    Spring 3.x 读书笔记
    JAVA多线程---高并发程序设计
    JAVA多线程---ThreadLocal<E>
    JAVA多线程--Thinking in java
    2017年书单
    正则表达式获取多个img src的值
    使用summernote编辑器上传图片,重写onImageUpload
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083921.html
Copyright © 2020-2023  润新知