
PTA_L1-058 6翻了 (15分)
初始化变量:使用一个计数器来跟踪当前连续的“6”字符的数量。 遍历字符串:逐个字符遍历输入字符串。 更新计数器:如果当前字符是“6”,则增加计数器;否则,根据计数器的值决定如何处理当前字符。 处理替换逻辑:当遇到非“6”字符时,检查计数器的值并进行相应的替换操作。 输出结果:将处理后的字符串输出。
发布日期:2021-05-14 16:34:28
浏览次数:16
分类:精选文章
本文共 1465 字,大约阅读时间需要 4 分钟。
要解决这个问题,我们需要将一连串的“6”字符按照一定规则进行替换。具体来说,如果连续的“6”超过3个但不超过9个,则将其替换为“9”;如果连续的“6”超过9个,则将其替换为“27”。以下是一个解决方案:
方法思路
解决代码
#include#include using namespace std;int main() { string s; getline(cin, s); int len = s.size(); int ans = 0; for (int i = 0; i < len; ++i) { if (s[i] == '6') { ans++; } else { if (ans > 3 && ans <= 9) { for (int j = 0; j < ans; ++j) { cout << '9'; } ans = 0; } else if (ans > 9) { for (int j = 0; j < 9; ++j) { cout << '6'; } for (int j = 0; j < ans - 9; ++j) { cout << '9'; } ans = 0; } else if (ans <= 3) { for (int j = 0; j < ans; ++j) { cout << '6'; } ans = 0; } cout << s[i]; } if (ans <= 3) { for (int j = 0; j < ans; ++j) { cout << '6'; } } } return 0;}
代码解释
- 输入处理:使用
getline
函数读取输入字符串,确保不受空格影响。 - 计数器初始化:
ans
变量用于记录当前连续的“6”字符数量。 - 遍历字符串:使用
for
循环逐个字符遍历字符串。 - 字符处理:如果当前字符是“6”,则增加计数器;否则,根据计数器的值决定如何处理字符。
- 替换逻辑:根据计数器的值,决定将“6”替换为“9”还是“27”,并处理必要的字符输出。
- 输出结果:最终将处理后的字符串逐字符输出。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月17日 15时09分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Grafana导入 Promethus node模板
2019-03-12
MySQL的操作
2019-03-12
ARM裸机知识
2019-03-12
算术运算符
2019-03-12
MySQL学习之《查询数据》
2019-03-12
java设计模式--代理模式
2019-03-12
如何提高SQL查询的效率?
2019-03-12
Docker入门之-镜像(二)
2019-03-12
设置canvas图作为背景图?亲测有效
2019-03-12
搭建Docker本地 Registry
2019-03-12
数据结构——链表(3)
2019-03-12
32位机器与64位机器在编程方面的差别
2019-03-12
socket模块和粘包现象
2019-03-12
Python学习--模块
2019-03-12
分享拉线位移传感器有哪些实质性的特点
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12
影响拉线位移传感器精度的原因有哪些?
2019-03-12
无法初始化Winsock2.2处理
2019-03-12
Horizon Cloud之UAG访问异常
2019-03-12
vm无法打开电源
2019-03-12