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 ...
随机推荐
- 设计模式之Adapter
设计模式总共有23种模式这仅仅是为了一个目的:解耦+解耦+解耦...(高内聚低耦合满足开闭原则) 介绍: 将两个不兼容的类纠合在一起使用,属于结构型模式,也有人称它为wrapper(包装类). 包装类 ...
- 【Eclipse】Elipse自定义library库并导入项目
1.定义像JRE System Library之类的库 (1)点击UserLibrary (2)如果没有就点击new新建一个user library,否则进行4 (3)向user library添加 ...
- 64_p3
perl-Locale-Msgfmt-0.15-17.fc26.noarch.rpm 12-Feb-2017 03:11 20558 perl-Locale-PO-0.27-6.fc26.noarch ...
- $fhqTreap$
- $fhqTreap$与$Treap$的差异 $fhqTreap$是$Treap$的非旋版本,可以实现一切$Treap$操作,及区间操作和可持久化 $fhqTreap$非旋关键在于分裂与合并$(Sp ...
- openjudge-NOI 2.6-2000 最长公共子上升序列
题目链接:http://noi.openjudge.cn/ch0206/2000/ 题解: 裸题,不解释(题目有毒) #include<cstdio> #include<algori ...
- C# 多线程多文件批量下载---子线程中更新UI 实例
代码1: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi ...
- cin关闭同步[转]
很多人会说cin的速度比scanf慢很多, 其实不然. cin慢的原因主要在于默认cin与stdin总是保持同步, 这一步是消耗时间大户. 只需要加上ios::sync_with_stdio(fals ...
- hdu 5912(迭代+gcd)
Fraction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- Java 如何获取系统时间
Java 如何获取系统时间 import java.text.SimpleDateFormat; import java.util.Date; public class Test { public s ...
- css特效-一道闪光在图片上划过
在百度音乐 http://music.baidu.com/ 看到这么一个图片效果,当鼠标移上去的时候,会有一道闪光在图片上划过,效果挺酷炫的.于是把这个效果再实现一下:大体思想是,设计一个透明层i,s ...