UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
来源:互联网 发布:阿里云 apk 编辑:程序博客网 时间:2024/06/07 13:13
看到有人说可以用双端队列!然后就写了,感觉比书上的链表更容易理解啊!
#include <iostream>#include <queue>#include <string>#include <cstdio>#include <cstring>using namespace std;int main(){char ch[1000005];while(scanf("%s",ch)!=EOF){deque<int> que; int lenth=strlen(ch); (ch[0]=='['||ch[0]==']')?que.push_front(1):que.push_front(0);//看第一个字符是什么 for(int i=1;i<lenth;++i) { if(ch[i]=='[')//把遇到的'['这个字符的位置放进队列!然后赋值为'\0' { que.push_front(i+1); ch[i]='\0'; } else if(ch[i]==']') { que.push_back(i+1); ch[i]='\0'; } } // cout<<que.size()<<endl; while(!que.empty()) { printf("%s",ch+que.front()); que.pop_front(); } puts("");}return 0;}
书上的代码~
#include<cstdio>#include<cstring>const int maxn = 100000 + 5;int last, cur, next[maxn]; // 光标位于cur号字符之后面char s[maxn];int main() { while(scanf("%s", s+1) == 1) { int n = strlen(s+1); // 输入保存在s[1], s[2]...中 last = cur = 0; next[0] = 0; for(int i = 1; i <= n; i++) { char ch = s[i]; if(ch == '[') cur = 0; else if(ch == ']') cur = last; else { next[i] = next[cur]; next[cur] = i; if(cur == last) last = i; // 更新“最后一个字符”编号 cur = i; // 移动光标 } } for(int i = next[0]; i != 0; i = next[i]) printf("%c", s[i]); printf("\n"); } return 0;}
0 0
- Uva-11988-Broken Keyboard (a.k.a. Beiju Text)
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
- uva 11988 Broken Keyboard (a.k.a. Beiju Text)
- UVA 11988 - Broken Keyboard (a.k.a. Beiju Text)
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
- UVa:11988 Broken Keyboard (a.k.a. Beiju Text)
- UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
- UVa 11988 - Broken Keyboard (a.k.a. Beiju Text) 题解
- UVA 11988 - Broken Keyboard (a.k.a. Beiju Text)
- Broken Keyboard (a.k.a. Beiju Text) UVA, 11988(链表)
- UVa 11988 - Broken Keyboard (a.k.a. Beiju Text)
- UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)
- UVa 11988 - Broken Keyboard (a.k.a. Beiju Text)
- UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)链表
- UVA - 11988 Broken Keyboard (a.k.a. Beiju Text) 链表
- UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)
- uva 11988 Broken Keyboard (a.k.a. Beiju Text) 链表
- Java连接数据库的简单例子
- ELF中与动态链接相关的段
- 中秋之际,开始写自己的iOS开发相关技术博客
- 4. java中的数据类型
- 应用服务器Tomcat
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
- 外观模式
- mysqlbinlog 查看mysql bin 日志
- 【css】day04_列表样式_显示方式_鼠标形状
- gcc g++ gdb
- 20、linux软件管理之rpm
- iOS9适配小结
- 域驱动设计
- 黑马程序员---java基础---反射机制