UVA 11988
来源:互联网 发布:生化危机6知乎 编辑:程序博客网 时间:2024/04/30 21:41
简单的题,要用链表,保持时间复杂度在O(n),切记不要用数组、字符串,这道题目的时间卡的很紧,多次赋值会超时的。
源代码如下:
#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<iomanip>using namespace std;typedef struct node{char data;struct node*next;node(char a){data = a;next = NULL;}}node;int main(){string s;while (getline(cin, s)){int j;for (j = 0; j < s.size(); j++){if (s[j] != '['&&s[j] != ']') break;}node *head = new node(s[j]);node *tail = head;for (int i = j+1; i < s.size();){if (s[i] == '['){while (i < s.size()&&s[i]=='['){i++;}if (i == s.size()) break;if (s[i] != ']'){node* newhead = new node(s[i]);node* temp = newhead;i++;while (i < s.size() && s[i] != '['&&s[i] != ']'){temp->next = new node(s[i]);i++;temp = temp->next;}temp->next = head;head = newhead;}}else if (s[i] == ']'){while (i < s.size() && s[i] == ']') i++;if (s[i] != '['){while (i < s.size() && s[i] != '['&&s[i] != ']'){tail->next = new node(s[i]);i++;tail = tail->next;}}}else{tail->next = new node(s[i]);tail = tail->next;i++;}}while (head != NULL){cout << head->data;head = head->next;}cout << endl;}//system("pause");return 0;}
阅读全文
0 0
- UVA 11988
- UVA 11988
- uva 11988
- uva 11988
- UVa 11988
- uva 11988
- UVA - 11988
- UVA 11988
- [UVA]11988
- uva 11988
- Uva 11988 Broken Keyboard
- UVa 11988 ------ Broken Keyboard
- UVa-11988 悲剧文本
- UVA 11988 链表
- UVA 11988 链表
- uva 11988 Broken keyboard
- uva
- UVA
- java单例模式中构造器私有引发的一些思考
- Java模拟并发操作进行服务器压力测试
- Codeforces Gym 101174 D. Dinner Bet (期望 + DP)
- javascript基础(2)
- Tooltip学习简单记录
- UVA 11988
- neo4j 基本语法笔记(全)
- 【脚本语言系列】关于Python基础知识映射器和过滤器,你需要知道的事
- 洛谷 P1402 酒店之王
- rpmbuild
- Spring整合RabbitMQ简单示例
- 实现虚拟机联网,NAT连接配置方法?
- HTML5性能优化
- tensorflow72 《深度学习原理与TensorFlow实战》05 RNN能说会道 03 对话机器人(chatbot)