zoukankan      html  css  js  c++  java
  • 基础数据结构

    uva514(经典题目)

    入门经典上有题解,但是代码本身其实并不能AC,需要修改,黑书上有非常深入的分析,可以参考

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<string>
     6 #include<vector>
     7 #include<stack>
     8 #include<algorithm>
     9 #include<map>
    10 using namespace std;
    11 const int maxn=1000+10;
    12 int target[maxn];
    13 int n;
    14 int main()
    15 {
    16     while(cin>>n&&n)
    17     {
    18         while(cin>>target[1]&&target[1])
    19         {
    20             for(int i=2;i<=n;i++)
    21             cin>>target[i];
    22             stack <int> s;
    23             int A=1,B=1;
    24             int ok=1;
    25             while(B<=n)
    26             {
    27                 if(A==target[B])  //进站马上出战
    28                 {
    29                     A++; B++;
    30                  }
    31                  else if(!s.empty()&&s.top()==target[B])  //站前面有车是可以先出战的
    32                  {
    33                      s.pop();
    34                      B++;
    35                   }
    36                   else if(A<=n)  s.push(A++);
    37                   else
    38                   {
    39                       ok=0; break;
    40                   }
    41 
    42           }
    43          cout << (ok ? "Yes" : "No" )<<endl; //注意这里必须括号括起来
    44         }
    45         cout <<endl;
    46     }
    47     return 0;
    48 }
    View Code

     南阳理工2 (经典题目)

    链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=2

    用栈实现,数据结构的经典基础题

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 #include<cmath>
     6 #include<stack>
     7 #include<algorithm>
     8 #include<vector>
     9 #include<map>
    10 using namespace std;
    11 string s;
    12 int main()
    13 {
    14     int T;
    15     cin>>T;
    16     for(int cas=1;cas<=T;cas++)
    17     {
    18         cin>>s;
    19         stack<char> a;
    20         int n=s.length();
    21         int ptr1=']'-'[';
    22         int ptr2=')'-'(';
    23         for(int i=0;i<n;i++)
    24         {
    25             if(a.empty())
    26             {
    27                 a.push(s[i]);
    28                 continue;
    29             }
    30             char t=a.top();
    31             if(s[i]-t==ptr1||s[i]-t==ptr2)
    32                 a.pop();
    33             else a.push(s[i]);
    34         }
    35         if(a.empty())
    36             cout<<"Yes"<<endl;
    37         else
    38             cout<<"No"<<endl;
    39     }
    40     return 0;
    41 }
    View Code
  • 相关阅读:
    疯狂Java学习笔记(008)
    CSS-链接
    css学习:css样式的引入
    两个文本根据索引key关联合并,将无关联信息单独输出
    三 数据挖掘算法
    二、数据挖掘
    vsftp虚拟账户设置
    python3在linux下的编码错误
    python 一个根据正则判断输入的函数
    python excel读写与dict转换
  • 原文地址:https://www.cnblogs.com/wolf940509/p/4532616.html
Copyright © 2011-2022 走看看