1-万万没想到之聪明的编辑

解题思路

此题的编辑规则如下

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

从题目可以看出,本题的规则实际上只有两个,1和2,1是指连续3个同样的字母,则去掉一个;
2是指两对一样的字母,则去掉第二对的一个字母。第3条规则告诉我们规则是从左往右匹配,因此每次我们去掉的字母都将是形成这种规则的最后一个字母。
所以对给定的字符串,先对其执行规则1,再执行规则2。

代码

#include<iostream>
#include<string>
using namespace std;
int main() {int n;cin >> n;while (n--) {string s;cin >> s;//规则1for (int i = 2; i < s.length(); i++) {if (s[i] == s[i - 1] && s[i - 1] == s[i - 2]) {s.erase(i, 1);//满足规则1,删除一个该字符i--;if (s.length() < 3) break;}}//规则2for (int i = 3; i < s.length(); i++) {if (s[i] == s[i - 1] && s[i - 2] == s[i - 3]) {s.erase(i, 1);//满足规则2,删除一个该字符i--;if (s.length() < 3)break;}}cout << s << endl;}
}

2-万万没想到之抓捕孔连顺

解题思路

参考自该博客

题目的意思,就是给定一系列已排序的数,从这些数中任选三个数,使其满足最大和最小的数差值小于等于给定值。

我觉得下面该blog的思想有些不对,如果打印出具体的组合将是错误的结果,但是由于其计算组合数的数目是对的,因此产生了正确的结果;
例如下面的输入

输入:
4 3
1 2 3 4

对于blog中的思想,其将产生的组合分别为:

#此时left=0,right=2
1 2 3
#此时left=0,right=3
1 2 3
1 2 4
1 3 4

可以看出组合数量是对的,但真正的组合并没有求对,在right=3时,发生了重复,多了一组,而这组应该为2 3 4

代码

#include<iostream>
#include<vector>
using namespace std;
long long C(long long n) {//计算Cn2的值return (n - 1) * n / 2;
}
int main() {int N,D;while (cin >> N >> D) {vector<int> arr(N);for (int i = 0; i < N; i++) {cin >> arr[i];}//固定p_left,移动p_right,如果满足两者之差<=D,则从[p_left+1,p_right]中选择两个,即为存在的个数long p_left = 0,p_right =2,count = 0;for (; p_right < N;p_right++) {while (arr[p_right] - arr[p_left] > D) {p_left++;}count += C(p_right - p_left);}cout<<count%99997867;}return 0;
}

4-特征提取

解题思路

使用map<pair<int, int>, pair<int, int>>;//key-特征(x,y)-value-(起点帧的序号,特征计数)
遍历每个帧,加入新特征或者更新已存在特征的帧起点,特征计数
1、如果该特征不存在,则添加该特征到map
2、如果该特征存在
通过判断(当前帧号==特征起点帧号+特征计数),相等表示连续
(1)如果该特征是连续的,特征计数+1;
(2)如果该特征是不连续的,更新特征起点为当前帧号,特征计数+1;

参考自题解

代码

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
int main() {int n;cin >> n;//样例数for (int k = 0; k < n; k++) {int m;//帧数cin >> m;map<pair<int, int>, pair<int, int>> mp;int maxLen = 1;for (int i = 0; i < m; i++) {int t;//本帧特征数cin >> t;for (int j = 0; j < t; j++) {int x, y;pair<int, int> p;cin >> p.first >> p.second;//判断该帧是否存在//不存在if (mp.find(p) == mp.end()) {//原本无该特征,添加该特征mp[p].first = i;//该帧的起点帧mp[p].second = 1;//该特征初始计数为1}//存在else {//连续if (i == mp[p].second + mp[p].first) {mp[p].second++;maxLen = max(maxLen, mp[p].second);}//不连续else {mp[p].first = i;//更新起始帧号mp[p].second = 1;//更新计数}}}}cout << maxLen << endl;}return 0;
}

【牛客网】字节跳动2019春招研发部分编程题汇总相关推荐

  1. 字节跳动2019春招研发部分编程题汇总(Python版本)

    一.万万没想到之聪明的编辑 王大锤是一家出版社的编辑,负责校对投稿来的英文稿件,他发现一个发现拼写错误的捷径: 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> ...

  2. 字节跳动2019春招研发部分编程题汇总【题解】

    差不多2个小时才AK,题目难度还行吧. 自己好菜. 题目地址:https://www.nowcoder.com/test/16516564/summary 目录 万万没想到之聪明的编辑 [模拟] 万万 ...

  3. 字节跳动2019春招研发部分编程题汇总

    一:万万没想到之聪明的编辑 题目描述 给定一个字符串,按照要求修改字符串,输出最后的结果 1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello 2 ...

  4. 【公司真题--字节跳动】字节跳动2019春招研发部分编程题汇总

    文章目录 1.万万没想到之聪明的编辑 2.万万没想到之抓捕孔连顺 解法一:回溯(超时) 解法二:确定区间后数学组合问题直接求解 3.雀魂启动 1.万万没想到之聪明的编辑 直接暴力了! #include ...

  5. [C语言]字节跳动2019春招研发部分编程题

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

  6. 字节跳动2019春招研发部分编程题_N个建筑中选定3个埋伏地点_决定相距最远的两名特工间的距离不超过D_可行的埋伏方案

    题目 import java.util.Scanner;public class Main_N_D_Second_2 {private static int mod = 99997867;public ...

  7. 数据、运营相关试题(二)【牛客网:京东2019春招产品运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向产品运营类试题,后半部分偏向综合测试类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广 ...

  8. 数据、运营相关试题(一)【牛客网:京东2019春招商务与运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向商务类试题,后半部分偏向运营类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广场] 数 ...

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

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

最新文章

  1. PHP的CURL报错的排查记录:短连接的成本真的很高啊
  2. glide_在Android中将数据绑定与Glide结合使用
  3. 大厂面试必问!给培训班出身的程序员一些建议
  4. IOS下将文字转成图片方法
  5. java 多线程变量可见性_Java多线程:易变变量,事前关联和内存一致性
  6. [Leedcode][JAVA][第25题][K个一组反转链表][链表][递归]
  7. CodeForces 1065E. Side Transmutations 计数
  8. Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
  9. Android编程之指定ListView的item位置
  10. 取值方法_函数的定义域和参数的取值范围详解
  11. html小作业--新闻栏目
  12. 如何防范短信接口被恶意攻击
  13. C#调用Bing的在线翻译接口Translator
  14. amd显卡风扇调节_显卡风扇转速调节
  15. 02 python入门
  16. 多余元素删除(多种代码)
  17. Win7虚拟机安装vs2019,亲测有效
  18. MAC M1/M2安装ADOBE等第三方软件问题终极解决 “开启任何来源”“无法检查更新,请确认您已接入互联网”“移除下载镜像的Quarantine属性” “闪退”【MACBOOK】
  19. 什么是ASCII码?
  20. 快速排序的三种方式以及快排的优化

热门文章

  1. 前端从服务器获取时间进行倒计时
  2. 苹果-桔子问题(生产者-消费者问题)
  3. 记录第一次写静态网页-百度首页
  4. 输入一个总秒数,计算几小时零几分钟零几秒钟。
  5. 【创造者】创造的鉴赏力
  6. EduCoder实践课程——Python零基础到精通 参考答案(七)
  7. 【腾讯TMQ】JAVA代码覆盖率工具JaCoCo-踩坑篇
  8. NanoPC-T4 上实现pwm风扇自动调速
  9. 京东小程序 Taro 开发对比原生开发测评
  10. 区块链服务网络BSN与ConsenSys建立合作伙伴关系