今天真是十分十分十分。。。。的不爽!made!烦死了,烦死了,烦死了。。。
感觉做到现在自己根本一点长进都没有,今天在食堂又差点跟人家起冲突,上课忘带作业,明明很简单的题就是怎么都做不出,网购的书店家竟然发错货,乱七八糟一大堆的破事,mademademademademade。。。!!!
哎,仔细想想,老师说过,一类的题要做一百道才能说有点感觉,我这才做了十几道,大概是有些急于求成了吧,加上今天心情很不正常,老妈总是说心情不好的时候不要学习,要出去走走玩玩改善心情,现在想想确实有道理,昨天竟然吧书包带背断了一条,真恶心,这回干脆买个好的,省得以后再纠结。。。
心情不好,可又实在不想闲着,干脆注册个小号把以前做过的题在做一次,温故知新呵。。。
话说这道题是我在南阳oj上的第一到题呵,当时连根本是个什么都不知道的小白,连数据结构、算法听都没听过,甚至连百度、讨论区都不知道,家里没网,去网吧看完题傻了吧唧的想了两天,竟然还真做出来了,呵呵,现在回想下还是挺有意思的哈~~
贴下当时的代码
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a,xian1,xian2,hou1,hou2;
int num,i,x,h,jg(0);
scanf("%d\n",&num);
for(i=0;i<num;i++){
JX: h=0;x=0;
scanf("%c",&a);
if(a=='['){
xian1='[';
xian2=']';
hou1='(';
hou2=')';
x++;
}
else if(a=='('){
xian1='(';
xian2=')';
hou1='[';
hou2=']';
x++;
}
else if(a=='\n'){
goto JS;
}
else {
jg=-1;
}
for(scanf("%c",&a);a!='\n';scanf("%c",&a)){
if(a==xian1){
x++;
}
else if(a==xian2){
x--;
}
else if(a==hou1){
h++;
}
else if(a==hou2){
h--;
};
if(x<0||h<0||(x==0&&h!=0)){
jg=-1;
}
else if(x==0&&h==0){
goto JX;
}
}
JS: if(jg==0&&(x==0&&h==0)){
printf("Yes\n");
}
else {
printf("No\n");
}
jg=0;
}
return 0;
}
晕。。。看起来很纠结啊!只记得当时是想了一种计数的方法,给不同的括号分别赋正负的权值,通过判断数值的变化来解决,具体的实在记不清了,仔细看看里面竟然还有N
久不用的goto。。。
(实在看不下去,还是上现在重写的代码吧
(现在想的话思路就很简单清晰了,只要从前到后看,遇到前括号的话就入栈,遇到回括号的话就开始出栈,直到遇到与其匹配的前括号;如果在操作的过程中出现“栈已经空了,但还要出栈”的现象,就说明括号是不匹配的~~(对了,在前面我还加了一句判断字符串长度是否是偶数额。。。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int n;
vector<char> a;
string s;
cin>>n;
while(n--)
{
cin>>s;
if(s.size()%2!=0)
{
cout<<"No"<<endl;
continue;
}
a.erase(a.begin(),a.end());
bool yes=true;
for(int i=0;i!=s.size();++i)
{
if(s[i]=='['||s[i]=='(')
a.push_back(s[i]);
else
{
while(true)
{
if(a.empty())
{
yes=false;
break;
}
int tem=s[i]-(*(a.end()-1));
a.erase(a.end()-1);
if(tem<3&&tem>0) break;
}
}
if(!yes) break;
}
if(yes) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
虽然也说不上好,不过跟当时的比起来还是能看出有进步呵。。。可惜只是形式上有进步,会用栈了,可当时那种认真想问题的心态却早就不知道跑那去了。。。当时一个问题想不出来,就一个劲的想,吃饭也想,睡觉也想,而且觉得很有意思;可现在,一遇到点困难就是看讨论区、百度。。。自己思考的时候几乎没有了。。。唉~~为什么现在心情变得这么浮躁?本来我也不是计算机专业的学生,学编程,是因为我觉得它有意思才学的,acm,也不过是好玩才参加而已,老师说报着玩的心态来做acm是不行的,可为什么不行呢?唉~想想也有道理,这不,我就有些玩不动了,当时那种“好玩”的感觉越来越难找到了,支持自己继续下去的动力不过就是拿奖的诱惑和面子问题,还有的话,大概就是我的怪心态吧。
刚才跟同学扯了几句,感觉心情好多了,老妈说不管怎样都要保持好心情,心情好不容易得病~~哈哈,大概是以前病得太多了吧。
时不时回头做做以前的题,其实还是不错的,至少现在我心情好些了,知道自己这段时间其实也不是啥都没学到呵。。。