文章目录

题目描述

题目描述

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

  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)continueif len(res) >= 2:if e == res[-1] and e == res[-2]:continueif len(res) >= 3:if e == res[-1] and res[-2] == res[-3]:continueres.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]:continueif(len(res))>=3:if i == res[-1] and res[-2] == res[-3]:continueres.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星)---万万没想到之聪明的编辑相关推荐

  1. 牛客网笔试真题 2021 阿里巴巴编程题(4星)题解(1-5)

    2021阿里巴巴校招笔试真题_Java工程师.C++工程师_牛客网 1.小强现在有n个物品,每个物品有x,y两种属性和.他想要从中挑出尽可能多的物品满足以下条件:对于任意两个物品 i 和 j ,满足( ...

  2. 2019 字节跳动双指针字符串题目 万万没想到之聪明的编辑

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

  3. 【牛客网-公司真题-前端入门篇】——58同城2021校招笔试-前端

  4. 【牛客网-公司真题-前端入门篇】——小米秋招笔试-前端

  5. 【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷1

  6. 【牛客网-公司真题-前端入门篇】——奇安信春招笔试-前端-卷2

  7. 字节跳动2019春招研发机试题  万万没想到之聪明的编辑

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

  8. 牛客网Java刷题知识点之关键字static、static成员变量、static成员方法、static代码块和static内部类...

    不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概 ...

  9. 牛客网Java刷题知识点之构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数...

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

最新文章

  1. 锤子辩论有感——我该如何定义成功
  2. 在.NET开发中的单元测试工具之(1)——NUnit
  3. 【算法学习笔记】哈夫曼树的构建和哈夫曼编码的实现代码
  4. MicroStation VBA 操作提示
  5. Java基础练习之流程控制(二)
  6. 数据库设计时设计标识字段的一些思考
  7. Regex Tester 安装教程
  8. CF1040D Subway Pursuit
  9. c语言24小时计时法转换为12小时,12时24时换算题(24小时和12小时换算方法)
  10. SPSS——随机抽样
  11. Python绘制简单折线图、散点图
  12. 计算机网络四级考试及格分数,四级多少分才算过了 多少分及格
  13. 关于JPEG、PNG、GIF、WEBP图片格式的理解与使用场景
  14. 卡内基梅隆大学计算机专业系,卡内基梅隆大学计算机
  15. 小程序改变swiper样式(带缩略图)
  16. easyrecovery2023最新免费版电脑数据恢复软件使用教程
  17. 可视化项目区域设计1
  18. tbr tbn tbc 的意思
  19. 一名大学毕业生的反思(转)
  20. HDFS PB级数据无感迁移实践

热门文章

  1. android app管理,基于Android 班费管理App的设计与实现
  2. java 开源微信电商项目
  3. OpenCV蒙版的使用实例(2)
  4. 使命召唤16计算机内存不足,使命召唤16总是加载停止工作
  5. Python基础入门3
  6. UE4 开房 多人在线动作游戏------学习笔记
  7. 茶杯与茶壶(摘自故事会)
  8. C++ 笔记-结构体-枚举-类型定义
  9. ORICOnbsp;SATA转ESATA挡板真爽,安装…
  10. CSDN请你吃汤圆啦!猿宵节万元礼包限时抢