字节跳动—万万没想到之聪明的编辑

文章目录

  • 字节跳动---万万没想到之聪明的编辑
  • 一、题目描述
  • 二、分析
  • 三、代码

一、题目描述

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

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

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

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

输入描述:

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

输出描述:

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

输入例子1:

2
helloo
wooooooow

二、分析

方法一:自动机

可以通过动态规划之KMP字符匹配算法来了解自动机的原理

对于本题也可以使用自动机的思想(以AB字符模拟):

  • 1.当第一次进入状态机的字母是A时,就处于0状态,继续判断下一个字符

  • 2.当第二次输入的字符不是A时,目前构成AX这种情况,不属于题意中的任意一个情况,状态不变,继续判断

  • 3.当第二次输入的字符还是A时,目前就构成AA这种情况,可能出现AAA,所以就进入1状态。

  • 4.当处于1状态时,第三次输入的字符如果不是A,目前构成AAB,可能会出现AABB型,所以需要判断,进入2状态

  • 5.当处于1状态时,第三次输入的字符如果是A,目前构成AAA,满足提议当中不能出现来连续3个同样的字符的情况,就需要删除一个,所以我们就忽略这个字符(就当没看见)

  • 6.如果当前处于2状态,第4次输入的字符如果还是B,那么就构成AABB型,属于题意中的情况,需要删除一个B,所以我们仍然忽略这个字符(就当没看见)

  • 7.如果当前处于2状态,第4次输入的字符如果不是B,那么就构成AABX型,不属于题意中的任意一个情况,状态变为0,继续判断

总结:0状态是用来处理不是AAA型或者AABB型的情况;1状态是用来解决AAA型的情况(忽略不加入结果集);2状态是用来解决AABB型的情况(忽略不加入结果集)

方法二:暴力求解

直接一趟遍历,把AAA的情况删除一个A,AABB的情况删除一个B,注意边界问题

三、代码

方法一:自动机模拟前后4个字符的情况

#include<iostream>
#include<string>
using namespace std;int main()
{int n;cin >> n;while (n--) {int state = 0;//代表状态机												

字节跳动---万万没想到之聪明的编辑相关推荐

  1. 字节跳动---万万没想到之抓捕孔连顺

    字节跳动-万万没想到之抓捕孔连顺 文章目录 字节跳动---万万没想到之抓捕孔连顺 一.题目描述 二.分析 三.代码 一.题目描述 我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐 ...

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

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

  3. 【字节跳动笔试题】万万没想到之聪明的编辑

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

  4. 2019牛客网校招真题(1星)---万万没想到之聪明的编辑

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

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

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

  6. 【字节2019春招】万万没有想到之聪明的编辑

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

  7. 字节跳动笔试题02万万没想到之抓捕孔连顺

    我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 我们在字节跳动大街的N个建筑中选定3个埋伏地点. 为了相互照应,我们决定相距 ...

  8. 牛客网-数据结构笔试题目(二)-万万没想到之抓捕孔连顺思路解析(附源码)

    题意 我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 我们在字节跳动大街的N个建筑中选定3个埋伏地点. 为了相互照应,我们决 ...

  9. 万万没想到之抓捕孔连顺

    万万没想到之抓捕孔连顺 题目描述 我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 我们在字节跳动大街的N个建筑中选定3个埋伏 ...

最新文章

  1. 一个NullPointerException,竟然有这么多花样!
  2. 必须掌握的10大Python库
  3. DPDK — 安装部署(Ubuntu 18.04)
  4. hashMap和hashTable的区别(个人总结)
  5. stm32F1和stm32F4的区别
  6. c语言找出公共子字符串,经典C语言面试题:求解最大公共子串
  7. oracle grid安装看不到config,【图片】【rac11g安装问题】出了问题特来请教各位大侠【oracle吧】_百度贴吧...
  8. nginx 过滤post报文 防火墙_十八般武艺之Nginx踩坑总结
  9. qt改变tab形状_生命吗哪QT灵修 11月18日
  10. C 语言日期时间处理
  11. 教你在win10系统开启和使用语音识别
  12. 《京东大鼓——老年迪斯科》(董湘昆)(唱词文本)
  13. 19款国产手机无一幸免:15分钟破解人脸识别,打印眼镜让刷脸形同虚设
  14. java随机生成6位流水号,Java生成随机流水号
  15. 服务器接千兆无线网卡,用户吓跑!千兆宽带就是坑爹货:真相崩溃
  16. LimeSDR环境的安装
  17. Spring Cloud OAuth2 认证流程
  18. 学考计算机上sci怎么消,已接收的SCI稿件,想要去掉一个作者,怎么和编..._网络编辑_帮考网...
  19. 为了疫情防控,发短信可查自己的行踪轨迹,是什么技术在帮忙?
  20. 2.5 Bro脚本入门

热门文章

  1. C# textBox1.Append/Text实现换行
  2. 覆盖网络 Flannel 0.7
  3. 【学时总结模板时间】◆学时·10 模板·3◆ AC自动机
  4. MySQL 多实例详解
  5. 远程管理,无需在机房来回穿梭
  6. eclipse如何快速查找某个类
  7. Webserver推送技术
  8. CodeForces - 1465E Poman Numbers(推公式+贪心)
  9. SDUT -2605 A^X mod P(数论+思维)
  10. HihoCoder - 1441 后缀自动机一·基本概念(模拟,后缀自动机入门好题)