SGU 538. Emoticons 水题
2016-01-17 19:04
260 查看
538. Emoticons
题目连接:
http://acm.sgu.ru/problem.php?contest=0&problem=538Description
A berland national nanochat Bertalk should always stay up-to-date. That's why emoticons highlighting was decided to be introduced. As making emoticons to be highlighted is not exactly the kind of task one performs everyday but this task had to be done as soon as possible, the following simple rule was decided to be introduced: a round opening or closing bracket be considered part of an emoticon if:this is an opening bracket and there exists the nearest bracket following to the right. The nearest round bracket to the right should be a closing bracket and there shouldn't be anything between the brackets but spaces and Latin letters,
or else it can be a closing bracket and there exists the nearest round bracket following to the left. The nearest round bracket to the left should be an opening bracket. Besides, there shouldn't be anything between the brackets but spaces and Latin letters.
If a bracket doesn't satisfy the conditions, it is considered a part of an emoticon. For example, let's consider the string "Hi:) (it is me) I have bad news:-((". In the string only the brackets that outline "it is me" aren't emoticons. Note that an opening bracket immediatelly followed by a closing bracket, i.e. "()", are not parts of emoticons by definition.
Your task is to print the number of brackets that are parts of emoticons in the given string.
Input
The input data consist of a single non-empty string. The length of the string does not exceed 105 characters. The string consists of lowercase and uppercase Latin letters, spaces, round brackets and punctuation marks: "-", ":", ",", ";". The string does not begin with and does not end with a space.Output
Print a single number — the required number of brackets that are part of emoticons.Sample Input
Hi:) (it is me) I have bad news:-((Sample Output
3Hint
题意
两个括号内如果只有英文字母 空格的话,就说明这个是正常的括号否则就是表情括号
问你表情括号有多少个
题解:
直接暴力扫一遍就好了,水题代码
#include<bits/stdc++.h> using namespace std; string s; int check(char c) { if(c=='(')return 1; if(c==')')return 2; if(c==' ')return 3; if(c<='Z'&&c>='A')return 3; if(c<='z'&&c>='a')return 3; return 4; } int main() { getline(cin,s); int ans = 0; int flag = 0; for(int i=0;i<s.size();i++) { if(check(s[i])==2) { if(flag == 1) flag = 0; else ans += 1; } else if(check(s[i])==1) { if(flag==1) ans++; flag = 1; } else if(check(s[i])==3) continue; else if(check(s[i])==4) { if(flag==1) ans++; flag = 0; } } cout<<ans+flag<<endl; }
相关文章推荐
- 在Dreamweaver中安装Emmet(zen-coding)
- C++成员变量的初始化顺序问题
- hdu 1711 Number Sequence(KMP入门模板题)
- Qt5 取消了QTextCodec::setCodecForTr()和QTextCodec::setCodecForCString()这两个函数。
- 状态模式
- 5 Maven-依赖详解
- org.hibernate.PersistentObjectException: detached entity passed to persist
- 软考嵌入式系统工程师知识点整理(嵌入式操作系统)
- Android如何自定义MaterialDesign主题
- Windows 10 UWP/Windows 10 Mobile 的微博分享实现
- 使用pssh进行并行批量操作
- Linux统计文件个数
- 五分钟法则(five minute rules)
- 多态、Object
- 古镇
- html5 canvas绘制圆形印章,以及与页面交互
- codeforces 527C:STL set
- CentOS隐藏nginx版本号
- 环信
- ios让你简单实现瀑布流