Codeforces 363C. Fixing Typos
来源:互联网 发布:重庆宝钻资产管理 知乎 编辑:程序博客网 时间:2024/06/02 06:33
题意:
告诉你一个字符串,使得字符串满足下面条件:
1.一个串若结尾的两个字符相同,则这个串后面的两个字符不能相同。
2.不存在连续相同的三个字符。
求删除最少的字符,使得字符串满足上面条件。
解析:直接用栈来求解,
先往栈内压人前两个字母,因为前面的尽量不要删除,删除中间的,这样可以减少删除字母的次数。
2. 如果当前字母和栈顶字母相同,且栈顶第二个字母和栈顶相同。
告诉你一个字符串,使得字符串满足下面条件:
1.一个串若结尾的两个字符相同,则这个串后面的两个字符不能相同。
2.不存在连续相同的三个字符。
求删除最少的字符,使得字符串满足上面条件。
解析:直接用栈来求解,
先往栈内压人前两个字母,因为前面的尽量不要删除,删除中间的,这样可以减少删除字母的次数。
依题意,有两种情况,当前字母无法入栈
2. 如果当前字母和栈顶字母相同,且栈顶第二个字母和栈顶相同。
最后将栈内的元素从头到尾输出就好了。
#include <cstdio>#include <cstring>using namespace std;const int N = 200010;char st[N];char str[N];int main() {char ch;while(scanf("%s",str) != EOF) {int top = 0;int len = strlen(str);st[top++] = str[0];st[top++] = str[1];for(int i = 2; i < len; i++) {ch = str[i];if((ch == st[top-1] && st[top-2] == st[top-3])|| ch == st[top-1] && st[top-1] == st[top-2]) {continue;}else {st[top] = ch;top++;}}st[top] = '\0';printf("%s\n",st);}return 0;}
0 0
- CodeForces 363 C. Fixing Typos
- Codeforces 363C. Fixing Typos
- CodeForces 363C - Fixing Typos
- codeforces 363C Fixing Typos
- CodeForces 363C Fixing Typos
- Problem - 363C - Codeforces --C. Fixing Typos
- CodeForce 363C Fixing Typos
- Codeforces 363C Fixing Typos 贪心+字符串模拟
- Fixing Typos CodeForces
- C. Fixing Typos
- C. Fixing Typos----栈
- Fixing Typos
- STL 水题 Fixing Typos(string 容器)
- codeforces 363C
- Fixing TCriticalSection
- Codeforces Round #363 (Div. 2) C. Vacations
- Codeforces Round #363 (Div. 2) [C] Vacations
- Codeforces Round #363 (Div. 2) C. Vacations
- 有关于在Extjs4环境中,window窗口下的messageBox弹窗的bug以及解决方案
- 最好用的 Eclipse 插件收藏
- JAVA 大数(BigInteger) 归纳总结 .
- 被忽视的TWaver功能(1)
- 应用shellcode的简单示例
- Codeforces 363C. Fixing Typos
- 如何测试一个网页登陆界面--转
- 杨辉三角
- [转]Android 微信SDK分享功能中的最全过程步骤分析
- Codeforces Round #274 (Div. 2)——B、Towers
- 复活Java 前言
- 20 改进的冒泡排序--双向冒泡排序
- Linux 安装命令
- Activity和Service的生命周期(图)