URAL 1993 This cheeseburger you don't need 模拟题
This cheeseburger you don't need
题目连接:
http://acm.timus.ru/problem.aspx?space=1&num=1993
Description
Master Yoda is the oldest member of the Jedi Council. He conducts preparatory classes of little Younglings up to the moment they get a mentor. All Younglings adore master Yoda and they hope to grow as strong and wise as he is. Just like all little children, Younglings are absolutely hooked on new games and ideas. Now they decided to learn to speak just like master Yoda. Help the Younglings understand how Yoda would say this or that sentence.
Yoda is speaking the Galactic language using the specific word order — so-called "object-subject-verb".
Your program receives a sentence that interests the Younglings. They have already highlighted all important parts in the sentence. They use the curly {}-brackets for objects, round ()-brackets for subjects and square []-brackets for verbs.
A sentence in the input can be simple or complex. If the sentence is complex, then it consists of two simple sentences separated by a comma. Sometimes a comma is followed by a conjunction that is not in the brackets.
Each simple question has exactly one object, one subject and one verb. Your task is to simply put them in the correct order. Namely, first the object, then the subject, finally the verb. Also, please do not forget that only the first word in the whole sentence should begin with capital letter.
Input
The single line contains a sentence that interests the Younglings. The length of the sentence does not exceed 100 characters. All the words in the sentence consist of Latin letters. The first letter of the first word is capitalized and the rest are small. The sentence may contain a comma. Each simple sentence contains all three types of brackets. Each pair of brackets surrounds one or more words. No pair of brackets can surround the other bracket. Brackets are always located on the borders of words. The words in the sentence are separated by a single space. There is no space character before a comma or a closing bracket and also after an opening bracket. The conjunction (which can be only after a comma) is the only word that is not surrounded by a pair of brackets.
Output
Print the sentence with the word order Yoda would use. All brackets must be omitted. You should separate the words by a single space.
Sample Input
(We) [are] {blind}, if (we) [could not see] {creation of this clone army}
Sample Output
Blind we are, if creation of this clone army we could not see
Hint
题意
没括号的原样输出,有括号的就优先输出大括号,中括号,然后小括号这样
句首需要大写
题解:
模拟题,烦……
代码
#include <bits/stdc++.h>
using namespace std;
string base;
vector < string > str;
string Clear_32(string s){
string res;
int Ed = s.size() - 1;
for( ; Ed >= 0 && s[Ed] == ' ' ; -- Ed);
for(int i = 0 ; i < s.size() ; ++ i){
if( s[i] != ' '){
for(int j = i ; j <= Ed ; ++ j) res.push_back( s[j] );
break;
}
}
return res;
}
void Solve( string s , int INDEX ){
stack < int > sp;
string F[4];
int pos[4];
F[0]=F[1]=F[2]=F[3]="";
bool find = false;
for(int i = 0 ; i < s.size() ; ++ i){
if(s[i] == '[' || s[i] == '(' || s[i] == '{'){
sp.push( i );
if( find == false ) F[0]=s.substr(0,i);
find = true;
if(s[i] == '{') pos[1] = i;
else if(s[i] =='(') pos[2] = i;
else pos[3] = i;
}
else if(s[i] == ']' || s[i] == ')' || s[i] == '}'){
string * ptr = F;
int extra = 0;
if( s[i] == '}' ) extra = 1;
else if( s[i] == ')' ) extra=2;
else extra=3;
ptr += extra;
*ptr=s.substr(pos[extra]+1,i-pos[extra]-1);
}
}
for(int i = 1 ; i < 4 ; ++ i) F[i] = Clear_32( F[i] );
cout << F[0];
if(INDEX==0){
for(int i = 0 ; i < 4 ; ++ i)
if(F[i].size()){
if(F[i][0] <= 'z' && F[i][0] >='a'){
F[i][0] = F[i][0] - 'a' + 'A';
}
for(int j = 1 ; j < F[i].size() ; ++ j){
if(F[i][j] <= 'Z' && F[i][j] >= 'A'){
F[i][j] = F[i][j] - 'A' + 'a';
}
}
for(int k = i + 1 ; k < 4 ; ++ k){
for(int v = 0 ; v < F[k].size() ; ++ v){
if(F[k][v] <= 'Z' && F[k][v] >= 'A'){
F[k][v] = F[k][v] - 'A' + 'a';
}
}
}
break;
}
}
int isfirst = 0;
for(int i = 1 ; i < 4 ; ++ i){
if(F[i].size()){
if(isfirst==0) isfirst = 1;
else cout << " ";
cout << F[i];
}
}
}
int main(int argc,char *argv[]){
// freopen("out.txt" , "w" , stdout );
getline(cin , base);
for(int i = 0 ; i < base.size() ; ++ i){
int j;
string temp;
for(j = i ; j < base.size() ; ++ j){
if( base[j] ==',' && i != j ) break;
temp.push_back( base[j] );
}
str.push_back( temp );
i = j - 1;
}
for(int i = 0 ; i < str.size() ; ++ i) Solve( str[i] , i );
cout << endl;
return 0;
}
URAL 1993 This cheeseburger you don't need 模拟题的更多相关文章
- ural 1993 This cheeseburger you don't need
顺次存到{} [] () 遇到逗号就处理下,最后处理逗号之后的 #include <iostream> #include <cstring> #include <stri ...
- URAL 2046 A - The First Day at School 模拟题
A - The First Day at SchoolTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- ural 2032 Conspiracy Theory and Rebranding (数学水题)
ural 2032 Conspiracy Theory and Rebranding 链接:http://acm.timus.ru/problem.aspx?space=1&num=2032 ...
- Ural 1209. 1, 10, 100, 1000... 一道有趣的题
1209. 1, 10, 100, 1000... Time limit: 1.0 secondMemory limit: 64 MB Let's consider an infinite seque ...
- URAL 1519 Formula 1(插头DP,入门题)
Description Background Regardless of the fact, that Vologda could not get rights to hold the Winter ...
- ural 2020 Traffic Jam in Flower Town(模拟)
2020. Traffic Jam in Flower Town Time limit: 1.0 secondMemory limit: 64 MB Having returned from Sun ...
- ural 2015 Zhenya moves from the dormitory(模拟)
2015. Zhenya moves from the dormitory Time limit: 1.0 secondMemory limit: 64 MB After moving from hi ...
- Ural 1079 - Maximum
Consider the sequence of numbers ai, i = 0, 1, 2, …, which satisfies the following requirements: a0 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- 一个JAVA渣渣的校招成长记,附BAT美团网易等20家面经总结
欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享美文,分享各种Java学习资源,面试题,以及企业级Java实战项目回复关键字免费领取): 今天分享一篇牛客网上的一个 ...
- django【ORM】 通过外键字段找对应类
两个方法其实是一种,用哪个都行,看实例: 方法一: 从list_filter中的字符串,找到model对象的字段,然后得到这个外键对应的类 循环,把list_filter中对应的类所有对象 方法二 ...
- 浅析linux内核中timer定时器的生成和sofirq软中断调用流程(转自http://blog.chinaunix.net/uid-20564848-id-73480.html)
浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(& ...
- module 'pytest' has no attribute 'allure'问题解决
安装allure后执行命令后报错module 'pytest' has no attribute 'allure' C:\Users\Desktop\xin>pytest -s -q --all ...
- Deep Learning基础--理解LSTM/RNN中的Attention机制
导读 目前采用编码器-解码器 (Encode-Decode) 结构的模型非常热门,是因为它在许多领域较其他的传统模型方法都取得了更好的结果.这种结构的模型通常将输入序列编码成一个固定长度的向量表示,对 ...
- Ubuntu16.04安装记
Ubuntu16.04安装记 基本信息: 华硕笔记本 Windows 10 家庭版 处理器:Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz 2.71GHz 已安装的内 ...
- HDU 17111 Number Sequence(KMP裸题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 题目大意:给你两个数字数组a和b,若b是a的子序列则输出b在a中第一次出现的位置,否则输出-1. ...
- redis关闭保护模式
1. set key出现的报错 在192.168.56.57客户端登录192.168.56.56的redis服务器时,报错如下: [root@localhost src]# ./redis-cli - ...
- hdu 1907(Nim博弈)
John Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submis ...
- MVC 之AjaxHelper
http://www.cnblogs.com/jyan/archive/2012/07/23/2604958.html 除了传统的Ajax方法之外,MVC提供了AjaxHelper类: Helper ...