我是靠谱客的博主 虚拟舞蹈,最近开发中收集的这篇文章主要介绍2019牛客网校招真题(1星)---万万没想到之聪明的编辑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

题目描述

题目描述

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

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

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

请听题:请实现大锤的自动校对程序
输入描述:
第一行包括一个数字N,表示本次用例包括多少个待校验的字符串。

后面跟随N行,每行为一个待校验的字符串。
输出描述:
N行,每行包括一个被修复后的字符串。

示例1
输入
2
helloo
wooooooow

输出
hello
woow

初始想法
对于第一条规则,思考后想到的是借助于一个变量 i 初始为0,记录后一个字符是否与前一个字符相同,若相同则加1,否则不变。
若 i 为2,则删除当前所指向的字符。

但是对于第二个没有想到简单合适的方法。

借鉴分析后:
思路1:
利用 res 存储修改后的字符
对于输入的每个字符串 s 的每个字符 e:

分别检查两条规则,若都不符合则存入 res 中
首先,这两条规则都是对于 res 大于2的。
规则1:
检查连续3个字符是否相同,则res 肯定>=2,加上当前的字符就是3个,即当前字符,和res 已有的倒数两个字符检查是否相同
若相同,则跳出本次循环,进行下一次循环,不执行最后的res.append(i)。

规则2:
对于2对字符是否相同,要求res长度>=3。检查当前字符和倒数第一字符,倒数第二个字符和倒数第三个字符是否相同。

n = int(input())
while n > 0:
    s = input()
    res = []
    for e in s:
        if len(res) < 2:
            res.append(e)
            continue
        if len(res) >= 2:
            if e == res[-1] and e == res[-2]:
                continue
        if len(res) >= 3:
            if e == res[-1] and res[-2] == res[-3]:
                continue
        res.append(e)
    print("".join(res))  # 一个字符串检查完成,输出检查后结果
    n -= 1

实际编程问题:
1、

n = int(input())
while(n--):  

Python 没有 n-- 这种用法

2、

n = int(input())
while n > 0 :
    s = input()
    res = []
    for i in s:
        if(len(res))<2:
            res.append(i) 
        if(len(res)) >=2:
            if i == res[-1] and i == res[-2]:
                continue
        if(len(res))>=3:
                if i == res[-1] and res[-2] == res[-3]:
                    continue
        res.append(i)
    print("".join(res))
    n -= 1

错误:
if(len(res))<2:
res.append(i)
之后少了continue
不然最后又加了一次当前字符
以helllo为例分析。

收获

1. 对 continue 的理解
循环里有continue ,则结束本次循环,进行下一次循环 i+1 ,continue之后的不执行。

2、

添加要改颜色的字体

添加要改颜色的字体

添加要改颜色的字体

添加要改颜色的字体

最后

以上就是虚拟舞蹈为你收集整理的2019牛客网校招真题(1星)---万万没想到之聪明的编辑的全部内容,希望文章能够帮你解决2019牛客网校招真题(1星)---万万没想到之聪明的编辑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部