欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!
专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。
适合人群:
- 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
- 希望系统学习C++/Python编程的初学者
- 想要提升算法与编程能力的编程爱好者
附上汇总贴:学而思编程周赛语言基础组 | 汇总
【题目描述】
有一个由英文小写字母组成的字符串S,小明想要按照如下规则,替换掉一些单词和字母。
- 如果遇到字母i,就替换成数字1。
- 如果遇到连续的2个字母"to",就替换成数字2。
- 如果遇到连续的3个字母"for",就替换成数字4。
- 如果遇到不属于to或for的字母o,就替换成数字0。
输出替换后的字符串。
【输入】
1 行,字符串 S。
【输出】
1 行,输出替换后的字符串。
【输入样例】
toconvertfori
【输出样例】
2c0nvert41
【解题思路】
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s, str; // s: 输入字符串, str: 转换后的字符串
cin >> s; // 读取输入字符串
// 遍历输入字符串的每个字符
for (int i = 0; i < s.length(); ++i)
{
// 检查当前字符并执行相应转换
if (s[i] == 'i')
{
str += "1"; // 将'i'转换为'1'
}
else if (s[i] == 't' && s[i + 1] == 'o')
{
str += "2"; // 将"to"转换为'2'
++i; // 跳过下一个字符'o'
}
else if (s[i] == 'f' && s[i + 1] == 'o' && s[i + 2] == 'r')
{
str += "4"; // 将"for"转换为'4'
i += 2; // 跳过下两个字符'o'和'r'
}
else if (s[i] == 'o')
{
str += '0'; // 将'o'转换为'0'
}
else
{
str += s[i]; // 其他字符保持不变
}
}
cout << str; // 输出转换后的字符串
return 0;
}
【运行结果】
toconvertfori
2c0nvert41