奇怪的键盘
Description
近期科学家们在熬夜写论文报告,可是不争气的键盘出现了一系列的问题,有的时候点一下键盘往外出两个字符,有的时候只出一个。恰巧键盘的退格键坏了。
你知道科学家们都是有怪脾气的,他自己打出一篇文章,他就像恢复成原来的.
科学家满意的字符串是这样的,如果字符串中有相临的两个字符相同就消除这两个字符,形成一个新的字符串,如果新的字符串还有相邻的字符并且相同,再消除。一直到没有相邻的两个字符相同为止。
Input
一个字符串,长度不大于2*10^5,只包含小写字母
Output
令科学家满意的字符串。
Sample Input
reallazy
Sample Output
rezy
HINT
对于样例中的字符串这样变化的,reallazy -> reaazy -> rezy.
解题思路:这是2015年蓝桥杯的题目,最早做这道题的时候还没有学习队列,使用数组模拟一直时间超限,现在看来这道题实际上和括号匹配那道题差不多,是一道很简单的栈和队列的题目。
上代码:
1 #include<stdio.h> 2 #include<string.h> 3 #include<deque> 4 using namespace std; 5 deque<char>q; 6 char a[2000000]; 7 int main() 8 { 9 int i,k; 10 gets(a); 11 k=strlen(a); 12 for(i=0; i<k; i++) 13 { 14 if(q.empty()||a[i]!=q.back()) 15 { 16 q.push_back(a[i]); 17 } 18 else 19 { 20 q.pop_back(); 21 } 22 } 23 while(!q.empty()) 24 { 25 printf("%c",q.front()); 26 q.pop_front(); 27 } 28 printf("\n"); 29 return 0; 30 }
本文作者:王陸
本文链接:https://www.cnblogs.com/wkfvawl/p/8819621.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步