zoukankan      html  css  js  c++  java
  • 20201213STL1总结

    STL1总结

    STL定义

    例题

    #10115. 栈练习1

    思路

    建立一个栈,根据输入的命令来进行模拟。最后如栈空,则输出"impossible!"

    代码

    /*
    ID: zhangbe5
    TASK: test
    LANG: C++
    */
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int n;
    int order,num;
    stack<int>s;
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
    		scanf("%d",&order);
    		if(order==1){
    			scanf("%d",&num);
    			s.push(num);
    		}else{
    			if(s.empty()){
    				printf("impossible!");
    				return 0;
    			}
    			s.pop();
    		}
    	}
    	if(s.empty()){
    		printf("impossible!");
    	}else{
    		printf("%d",s.top());
    	}
    	return 0;
    }
    

    #10062. 括弧匹配检验

    思路

    建立一个栈,把左括号压入栈中,如遇到右括号,则根据相应的左括号弹出栈顶。如括号不匹或无括号,则说明不匹配。如果遍历完整个字符串还有元素在栈内,则说明不匹配。

    代码

    /*
    ID: zhangbe5
    TASK: test
    LANG: C++
    */
    #include<bits/stdc++.h>
    using namespace std;
    string s;
    stack<char>q; 
    bool check(){
    	for(int i=0;i<s.size();i++){
    		if(s[i]=='('||s[i]=='['){//如为左括号则存入 
    			q.push(s[i]);
    		}else if(s[i]==')'){//如为右括号,开始判断 
    			if(q.empty()){//缺左半括号 
    				return false;
    			}
    			if(q.top()!='('){//无法配对 
    				return false;
    			}
    			q.pop();
    		}else if(s[i]==']'){//如为右括号,开始判断 
    			if(q.empty()){//缺左半括号 
    				return false;
    			}
    			if(q.top()!='['){//无法配对 
    				return false;
    			}
    			q.pop();
    		}
    	}
    	if(!q.empty())return false;
    	else return true;
    }
    int main(){
    	cin>>s;
    	if(check()){
    		printf("OK");
    	}else{
    		printf("Wrong");
    	}
    	return 0;
    }
    

    #10063. 车厢调度

    思路

    构造一个栈,将(n)个元素压入栈内,从而根据序列来判断是否存在这个序列。

    代码

    /*
    ID: zhangbe5
    TASK: test
    LANG: C++
    */
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int n,a[1010],b[1010],head;
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
    		scanf("%d",&a[i]);
    	}
    	for(int i=1,k=1;i<=n;++i){
    		while(k<=a[i]){
    			b[++head]=k;
    			++k;
    		}
    		if(b[head]==a[i]){
    			--head;
    		}else{
    			printf("NO");
    			return 0;
    		}
    	}
    	printf("YES");
    	return 0;
    }
    
    她透过我的血,看到了另一抹殷红
  • 相关阅读:
    轻量级javascript库不用写CSS3动画 Move.js
    ajax post 和 get方法详解
    HTML5 localStorage图书阅读器实例
    css3 监听webkitAnimationEnd运动结束 后执行什么
    设计模式四 工厂模式
    设计模式三 原型模式
    设计模式二 单例模式
    设计模式一 6大设计原则
    zookeeper 源码编译
    plantuml 基本语法(转摘)
  • 原文地址:https://www.cnblogs.com/zhangbeini/p/14141204.html
Copyright © 2011-2022 走看看