CF70B Text Messaging

先说几句

感谢楼上的同学提出修改意见!

这题其实只是一道简单的模拟。我觉得难度最好是 普及-。

解题思路

先是输入数据。想说一点:

输入整数后,如果下面要 getline 输入字符串,要用

把换行符吃掉。

建立一个动态数组/链表/ vector a,存放每个句子的长度。具体的处理就是,碰到标点符号这个句子就结束了。特别要注意过滤两个句子中的空格。

遍历一遍 a。如果出现长度已经大于短信容量 n 的句子长度,直接结束程序,有且仅有这种情况,应该输出 "Impossible"。

现在,我们令变量 cnt 为当前短信的总长度,ans 为最终的答案(短信数量)。先让 cnt 为第一句话的长度,则 ans 的初始值应设为 1

让下标 i 继续向后遍历。如果不需要换行,则

否则另起一条短信:

至于为什么第一种情况要有一个 "+1",只是因为题目中有详细的要求:

注:每两句话叠加在一起要多一个空格

最后输出 ans,就大功告成了!

奉上代码

千万不要抄,小心棕名!


All Rights Reserved 2022 Wang Zhanrui