题目

题目描述

如果字符串中存在子串"cake"(小写字母),则称此串为蛋糕串。

给出n个字符串,如果所给的串为蛋糕串,则将蛋糕切除(即将"cake"删除)。将所有蛋糕串的剩余部分依次合并在一起,连成一个字符串并输出。

输入格式

第一行为一个正整数n(n ≤ 10000)。

接下来n行,每行为一个字符串(字符串长度≤10000)。字符串中可能包含空格。

输出格式

按要求输出一行字符串。

题解

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main(){int n;string res(""),t;scanf("%d",&n);getchar();for(int i = 0;i < n;i++){getline(cin,t);auto idx = t.find("cake"); // 使用find函数查找"cake"if(idx == string::npos) continue;while(idx != string::npos){t = t.substr(0,idx) + t.substr(idx + 4);idx = t.find("cake");}res += t; }printf("%s",res.c_str());return 0;
}

第十行

getline(cin,t);

这一行将一行的数据读入到字符串t。
注:为什么不使用cin >> t;而使用了getline呢?
因为cin在遇到空格时会停止读入,使用cin无法读取到具有空格的一行字符串,所以是用了getline
使用方法为:

getline(cin,字符串对象);

第十一行

auto idx = t.find("cake");

find函数可用于查找子串,如果找到,返回匹配位置的首个元素的下标。
如果没找到,则返回string::npos(它是一个很大的数)。

auto用于自动识别数据类型,在某些时候可以偷懒用。
详细请看:c++ auto关键字使用

第十四行

t = t.substr(0,idx) + t.substr(idx + 4);

substr函数用于截取子字符串。
它有两种形式,一种是

substr(子串的首元素下标,子串的长度);
substr(子串的首元素下标); // 会将当前位置到末尾的子串截取出来

substr函数会将截取到的子串以函数返回值的形式返回出来。

使用+号可以拼接两个字符串。
例如:

string a = "hello ",b = "world!";
string c = a + b;

那么c的值将为hello world!

综上所述,第14行便实现了从字符串t中截取出两个子串,并将子串合并后复制给t的操作。


原创不易,感谢支持。

[C++][题解]切蛋糕相关推荐

  1. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——A题 切蛋糕

    题目描述 龙龙有一块蛋糕,现在他想将蛋糕平均切成k块,分给他的k名hxd.但是不幸的是,因为龙龙不擅长切蛋糕,他每一次只能将一块蛋糕平均分成两份.例如,将一块大小为1的蛋糕分割成两块大小为1/2的蛋糕 ...

  2. 漫画:有趣的 “切蛋糕“ 问题

    -----  第二天  ----- 举个例子: 我们有5块蛋糕, 蛋糕的大小分别是 5,17,25,3,15 我们有7位顾客, 他们的饭量分别是 2,5,7,9,12,14,20 (每个蛋糕大小和顾客 ...

  3. AI在中国,还没到抢切蛋糕的时候

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 他们中的不少名字,之前并不广为人知. 刘全全.王宇杰.王昌宝.帅靖文.张顺丰.蒋尚达.余革年.闵可锐.宋洪伟.李晓普.张晓伟.王峰.董倩倩 ...

  4. P1714 切蛋糕(线段树+前缀和)

    P1714 切蛋糕 解题思路:求连续区间不超过k的最大值.先求出前缀和,线段树维护前缀和,在一个长度为k的区间,找到前缀和最小的,用最后的值减去这个值,得到的就是在这个区间里的最大值.如果长度不能到达 ...

  5. 切蛋糕(洛谷P1714)

    切蛋糕 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕.这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大, ...

  6. c语言切蛋糕问题算法,从“切蛋糕问题”谈到欧拉#

    从"切蛋糕问题"谈到欧拉在图论上的贡献 这个作者敬业,不得不发... 从圣诞节到新年之间,我们有几天假期.我们几个老朋友就选择一个晚上,各自准备点吃的东西欢聚在一起.吃吃喝喝完后, ...

  7. 【Leetcode单调队列】- 洛谷P1714切蛋糕

    单调队列 解决该类问题的重点维护一个队列,从队首到队尾是递减的,队首是最大的.队尾是最小的. 队尾接受值,队首排出值. Java实现用双端队列,前面接收值,后面排出来值. 这类题目往往是跟滑动窗口一起 ...

  8. 切蛋糕 爱丽丝梦游仙境,来到了疯帽子的茶会。茶会上有n只兔子,疯帽子作为绅士,今天专门为爱丽丝和兔子们准备了一个圆形的慕斯蛋糕,疯帽子要把这块蛋糕平均分给爱丽丝和兔子们(疯帽子自己不吃蛋糕)

    Description 爱丽丝梦游仙境,来到了疯帽子的茶会.茶会上有n只兔子,疯帽子作为绅士,今天专门为爱丽丝和兔子们准备了一个圆形的慕斯蛋糕,疯帽子要把这块蛋糕平均分给爱丽丝和兔子们(疯帽子自己不吃 ...

  9. 【寒假每日一题】洛谷 P7471 [NOI Online 2021 入门组] 切蛋糕

    题目链接:P7471 [NOI Online 2021 入门组] 切蛋糕 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 Alice.Bob 和 Cindy 三个好朋友得到 ...

  10. 算法实践:切蛋糕(动态规划)

    切蛋糕 描述 有一块矩形蛋糕,宽和高分别是整数w.h.现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形.且宽和高均为整数.切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕.请计算:最后得到的m块蛋糕中,最 ...

最新文章

  1. 为机柜鸣冤:数据中心被忽视的重要设备
  2. css 动态rem_【面试题】CSS知识点整理(附答案)
  3. 剑指offer-数组中的重复的数字-p39
  4. mongodb数据库淘汰_mongodb 内存数据淘汰策略
  5. win7系统如何访问xp系统的服务器,WIN7系统怎么让XP系统访问呢
  6. 钱与命的八句真实话(图)
  7. Go语言之高级篇beego框架之参数配置与路由配置
  8. windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接
  9. non-overlapping-intervals
  10. webview java调用js_android WebView java与js相互调用
  11. 【vue】---vue中使用async+await出现的问题及解决方案
  12. 临渊羡鱼 不如退而结网
  13. docker修改服务器ip地址,如何修改docker的ip地址
  14. 游戏测试和软件测试哪个好点?
  15. Java版飞翔的小鸟代码完整
  16. js执行机制经典面试题(一)
  17. win7 访问局域网共享文件时提示输入网络凭据 设置开机免输入凭证进入共享盘设置
  18. sql语句(SQL SERVER)
  19. PowerCHM-强大的CHM工具
  20. 研究生语音识别课程作业记录(二) 非特定人孤立词识别

热门文章

  1. 计算机控制d a数模转换实验,实验一 D、A数模转换实验
  2. HCIA网络基础17-HDLC和PPP
  3. 电商平台商品详情API调用,获取SKU各类信息
  4. 数学竞赛辅导陈启浩pdf_【优秀论文】第九届MathorCup高校数学建模挑战赛(B题)...
  5. 计算机网络——域名系统
  6. 获取文件哈希值_哈希(hash)是个啥?
  7. (转)在 Linux 平台中调试 C/C++ 内存泄漏方法
  8. django学习日记2017-10-20: 登录界面
  9. 框架内(React)网页打印的实现
  10. Electron 创建任务栏图标以及任务栏图标右键菜单