zoukankan      html  css  js  c++  java
  • 字节跳动机试题——万万没想到之聪明的编辑

    题目描述

    我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:

    1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello
    2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello
    3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC
     

    我特喵是个天才!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞。用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢!
    ……
    万万没想到,我被开除了,临走时老板对我说: “做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。一行行行行行;要是不行,干一行不行一行,一行不行行行不行。” 我现在整个人红红火火恍恍惚惚的……

    请听题:请实现大锤的自动校对程序

    输入描述:

    第一行包括一个数字N,表示本次用例包括多少个待校验的字符串。

    后面跟随N行,每行为一个待校验的字符串。

    输出描述:

    N行,每行包括一个被修复后的字符串。


    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_SIZE 0x500
    //1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello
    //2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello 
    
    int main()
    {
        int nCnt = 0;
        scanf("%d", &nCnt);
        
        if(nCnt <= 0)
        {
            return 0;
        }
    
        char szInput[MAX_SIZE] = {0};
        while(nCnt-- > 0)
        {
            scanf("%s", szInput);
            int i = 0;
            int nLen = strlen(szInput);
            int nFlag = 0;
            while(szInput[i] != 0)
            {
                if(i + 2 <= nLen - 1 && szInput[i] == szInput[i + 1] && szInput[i] == szInput[i + 2])
                {
                    for(int j = i + 2; j < nLen; j++)
                    {
                        szInput[j] = szInput[j + 1];
                    }
                    szInput[nLen - 1] = 0;
                    nLen--;
                    nFlag = 1;
                }
    
                if(i + 3 <= nLen - 1 && szInput[i] == szInput[i + 1] && szInput[i + 2] == szInput[i + 3])
                {
                    for(int j = i + 3; j < nLen; j++)
                    {
                        szInput[j] = szInput[j + 1];
                    }
                    szInput[nLen - 1] = 0;
                    nLen--;
                    nFlag = 1;
                }
    
                if(0 == nFlag)
                {
                    i++;
                }
    
                nFlag = 0;
            }
            printf("%s
    ", szInput);
            memset(szInput, 0, MAX_SIZE);
        }
        system("pause");
    }
  • 相关阅读:
    使用 asp.net mvc和 jQuery UI 控件包
    ServiceStack.Redis 使用教程
    HTC T8878刷机手册
    Entity Framework CodeFirst 文章汇集
    2011年Mono发展历程
    日志管理实用程序LogExpert
    使用 NuGet 管理项目库
    WCF 4.0路由服务Routing Service
    精进不休 .NET 4.0 (1) asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进
    精进不休 .NET 4.0 (7) ADO.NET Entity Framework 4.0 新特性
  • 原文地址:https://www.cnblogs.com/predator-wang/p/12083514.html
Copyright © 2011-2022 走看看