入门经典——基础数据结构专题(List)

UVA127

链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=63

一道非常好的栈的模拟题,训练计划又往后推了一周,因为各种事情,不过自己已经做了修改,另外说一下,今晚寝室那两尊神不在,难得的心情好,

这题其实还是看了别人的代码的,大牛博客:http://blog.csdn.net/hyczms/article/details/38009937

我的代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<cmath>
 6 #include<vector>
 7 #include<stack>
 8 #include<algorithm>
 9 using namespace std;
10 const int maxn=54;
11 struct Card
12 {
13     char value,suit;
14 };
15 int judge(Card x,Card y)
16 {
17     return (x.value==y.value||x.suit==y.suit);
18 }
19 int main()
20 {
21     stack<Card> s[maxn];
22     Card card;
23     int n=0,i;
24     while(scanf("%c%c", &card.value, &card.suit) && card.value != ‘#‘)
25     {
26         getchar();
27         s[n++].push(card);
28         if(n==52)
29         {
30             int m=1,flag;
31             while(true)
32             {
33                 for(i=m;i<n;i++)
34                 {
35                     if(i>=3&&judge(s[i].top(),s[i-3].top()))
36                     {
37                         flag=1;
38                         break;
39                     }
40                     else if(i>=1&&judge(s[i].top(),s[i-1].top()))
41                     {
42                         flag=2;
43                         break;
44                     }
45                 }
46                 if(i==n)
47                     break;
48                 if(flag==1)
49                 {
50                     s[i-3].push(s[i].top());
51                     m=i-3;
52                 }
53                 else
54                 {
55                     s[i-1].push(s[i].top());
56                     m=i-1;
57                 }
58                 s[i].pop();
59                 if(s[i].empty())
60                 {
61                     for(int j=i;j<n-1;j++)
62                         s[j]=s[j+1];
63                     while(!s[n-1].empty())
64                         s[n-1].pop();
65                     n--;
66                 }
67             }
68             if(n>1)
69                 printf("%d piles remaining:",n);
70             else
71                 printf("%d pile remaining:",n);
72             for(int i=0;i<n;i++)
73             {
74                 printf(" %d",s[i].size());
75                 while(!s[i].empty())
76                     s[i].pop();
77             }
78             printf("\n");
79             n=0;
80         }
81     }
82     return 0;
83 }

开始刷题的第一天,也只是利用晚上复习完考研回寝室的时间做做自己喜欢的事情,希望可以坚持下去

UVA673

链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=103&page=show_problem&problem=614

一道栈的经典题目

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<cmath>
 6 #include<vector>
 7 #include<stack>
 8 #include<algorithm>
 9 #include<cctype>
10 #include<cstdlib>
11 using namespace std;
12 const int maxn=128+10;
13 //char s[maxn];
14 int main()
15 {
16     int T;
17     cin>>T;
18     getc(stdin);
19     while(T--)
20     {
21         char s[maxn];
22         gets(s);
23         stack<char> a;
24         int str1=‘]‘-‘[‘;
25         int str2=‘)‘-‘(‘;
26         int n=strlen(s);
27         for(int i=0;i<n;i++)
28         {
29             if(a.empty())
30             {
31                 a.push(s[i]);
32                 continue;
33             }
34             char t=a.top();
35             if(s[i]-t==str1||s[i]-t==str2)
36                 a.pop();
37             else
38                 a.push(s[i]);
39         }
40         if(a.empty())
41             cout<<"Yes"<<endl;
42         else
43             cout<<"No"<<endl;
44     }
45     return 0;
46 }

时间: 2024-10-27 07:49:56

入门经典——基础数据结构专题(List)的相关文章

基础数据结构专题

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<algorit

【0002(基础)】Skyline二次开发入门经典系列教程&mdash;&mdash;目录

这段时间由于个人事务太多,以至于没有按照时间更新系列教程,本人将尽快补上所欠章节,在此说声抱歉!   这一章在我心目中占有很重要的地位,因为我想通过这一章的内容来确定整个系列的大致走向.然而在整理的过程中,发现现实远比想象要复杂得多:首先想尽可能介绍较多的知识点,其次又要考虑学习的简易程度,再次又要确定顺当的知识体系流程-- 由于暂时的考虑无论如何也是不可能完备的,因此为了不影响后面教程的编写,暂定把这一章作为一个[流动性质]的可变章节,在编写每一章时,动态根据实际情况修改(添加.移动.修改)系

【0001(基础)】Skyline二次开发入门经典系列教程总览

本人是从2012年开始接触Skyline二次开发的,经历过 v6.0~v6.5(最新的6.6版本还未使用)的所有版本.作为一名非GIS专业毕业的大学本科生,鬼使神差般地进入了这个瑰丽的GIS领域.因此,在从事了4年多的Skyline二次开发工作后,我不能说我是"授业有专攻",更不能说我是"闻道有先后".在这个领域内,大牛之人比比皆是,正是因为他们的存在与指引,才使得我现在有点东西可以写出来供大家交流沟通.   整理这个系列教程的原因主要出于如下几点的考虑: 1.Sk

正经学C#_介绍与其编写基础:《c#入门经典》

本文所讲内容,均可在<c#入门经典>中可以查询.如有错误,敬请指出.谢谢! C#:全称C Shar.是微软.Net Framework平台下最为主要的客户语言之一.个人理解,c#是微软最为主推的语言,没有之一. .Net Framework是一个庞大且专业的平台,也是一个代码库.根据其中不同的客户语言提供不同代码库. 其中包含 CLR(公共语言运行库,Common Language Runtime),并且提供基础类型.编写c#语言的工具,最著名且最强大的是vs(Visual Studio).

OpenCV基础数据结构--基础入门

 图像数据结构 IPL 图像: IplImage |-- int  nChannels;     // 色彩通道数(1,2,3,4) |-- int  depth;         // 象素色深: |                       //   IPL_DEPTH_8U, IPL_DEPTH_8S, |                       //   IPL_DEPTH_16U,IPL_DEPTH_16S, |                       //   IPL_

深层次两张图解经典6大排序与6大基础数据结构——学完这些,妈妈再也不用担心我的排序算法与数据结构

本文从冒泡排序撩起,对选择.插入.希尔.归并.快排6种经典的数组排序进行了深入分析,并详解其间的关联,让你深刻理解其中的关键点:同时对经典的数据结构Vector.Stack.Queue.树.Map.Set做了归纳总结,对其底层的实现做了解析,分享给大家,作为每一个中高级程序员应该懂得的算法与排序,祝大家早上走上自己的"成金之路". 目录: 1.排序算法 2.数据结构 3.资料参考 1.排序算法: a.起源: 计算机从诞生起,就在模拟人这种智能生物的行为,而排序也来自于日常生活中,最经典

《算法竞赛入门经典(第二版)》pdf

下载地址:网盘下载 内容简介  · · · · · · <算法竞赛入门经典(第2版)>是一本算法竞赛的入门与提高教材,把C/C++语言.算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧.全书内容分为12 章,包括程序设计入门.循环结构程序设计.数组和字符串.函数和递归.C++与STL入门.数据结构基础.暴力求解法.高效算法设计.动态规划初步.数学概念与方法.图论模型与算法.高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题.书中的代码规范.简洁.易懂,不

c语言入门经典(第5版)

文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF    [点击下载] C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Li

C#入门经典札记_Ch05变量的更多内容

Chapter 05 变量的更多内容 5.1类型转换 1.无论什么类型,所有的数据都是一系列的位,即一组0和1.变量的含义是通过解释这些数据的方式来传达的.最简单的示例是char类型,这种类型用一个数字表示Unicode字符集中的一个字符.实际上,这个数字与ushort的存储方式相同----他们都是存储0~65535之间的数字. 2.一般情况下,不同类型的变量使用不同的模式来表达数据.这意味着,即使可以把一系列的位从一种类型的变量移动到另一种类型的变量中(也许他们占用的存储空间相同,也许目标类型