青少年编程知识记录 codecoming

【数据结构】栈—表达式括号匹配

【题目描述】

假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。

【输入描述】

一行数据,即表达式。

【输出描述】

一行,即“YES” 或“NO”。

【样例输入】

2*(x+y)/(1-x)@

【样例输出】

YES

作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈的基本操作

0.前言上一篇中简单介绍了栈的定义,这一篇中介绍栈的基本用法,包含压栈,出栈,判断栈空,判断栈中元素个数等。下面进行详细介绍1.基本用法本文介绍的栈的主要操作,使用栈之前加入<stack>头文件。基本用法如下:s.push(item);       //将item压入栈顶   s.pop();        &nb
作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈(Stack)的介绍

栈是只能在某一端插入和删除的特殊线性表。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO表)。一、栈的定义二、分类静态栈:使用数组动态栈:链表标准库STL中的stack三、算法入栈:push出栈:pop判断栈空:empty栈大小:size访问栈顶:top进栈(PUSH)算法①若top >= n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则进行②)②t
作者:亿万年的星光 分类:C++知识 浏览:

第十四届全国青少年信息学奥林匹克联赛初赛试题(NOIP2008年普及组初赛C++试题及参考答案)

第十四届全国青少年信息学奥林匹克联赛初赛试题                   ( 普及组  C++语言  二小时完成 ) 一、 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。1.微型计算机中,控制器的基本功能是(   )。A. 控制机器各个部

NOIP2013年普及组初赛题目及答案分析

一、单项选择题1. 一个 32 位整型变量占用( A )个字节。 A. 4    B. 8      C. 32      D. 128 【分析】32位整型,1Byte=8位, 32/8=4,答案选A2.二进制数 11.01 在十进制下是(  A  )。 A. 3.25    B. 4.125    C. 6.25    D. 11.12
作者:亿万年的星光 分类:C++知识 浏览:

数组的不确定长度输入

0.前言我们在学习数组的时候一般都会告诉你数组的长度,然后for循环去遍历。但是有一类问题是没有n的,也就是没有告诉长度的。1.方法第一种:(数组)#include<iostream> #include<cstdio> using namespace std; int main() { int a[100]; int t=0; int n; while(scanf("%d
作者:亿万年的星光 分类:C++知识 浏览:

【贪心】区间选点

【题目描述】

数轴上有n个闭区间[ai, bi],取尽量少的点,使得每个区间内都至少有一个点。(不同区间内含的点可以是同一个,1<=n<=10000,1<=ai<=bi<=10^9)。求最少点的个数。

【输入】

n

n项工作的开始与结束时间

【输出】

最多参与的工作项数

【输入样例1】

Bash
4  3 13  6 20  4 14  1 10

【输出样例1】

1





【输入样例2】

Bash
3  4 7  6 8  11 20

【输出样例2】

2



作者:亿万年的星光 分类:C++知识 浏览:

【高级篇】C++中的sort函数详解

0.简介sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>的c++标准库中1.sort的参数sort(start,end,cmp)start:表示排序数组起始的位置end:表示排序数组结束的位置cmp:用于排序的方法,可以不填,不填默认升序2.数组中的用法#include<bits/stdc++.h&g
作者:亿万年的星光 分类:C++知识 浏览:

【高级篇】C++ 中string的用法

0.概述string是C++标准库的一个重要部分,本意是字符串,和字符数组不同的是,字符数组是通过一个一个字符模拟的字符串,而string本身就是字符串,string在处理字符串问题时,十分强大。1.字符和字符串的区别在C++语言中,字符和字符串有着严格的区别,char  c;   // 字符, c=‘s’;   // 字符的赋值用单引号char  ary[10];   //字符数组cin>>ary;   //字符数组的赋
作者:亿万年的星光 分类:C++知识 浏览:

【初级篇】求最大公约数的方法

1.辗转相除法

int gcd(int a,int b)     {        if(a%b==0)           return b;       else           return gcd(b,a%b);   }

2.穷举法

int divisor (int a, int b) //自定义函数求两数的最大公约数     {        int  temp;//定义整型变量       temp=(a>b)?b:a;//采种条件运算表达式求出两个数中的最小值       while(temp>0)          {                if(a%temp==0&&b%temp==0)//只要找到一个数能同时被a,b所整除,则中止循环                break;                temp--;//如不满足if条件则变量自减,直到能被a,b所整除         }        return (temp);//返回满足条件的数到主调函数处     }

3.更相减损法

 int gcd2(int m,int n)   {       int i=0,temp,x;       while(m%2==0&&n%2==0)//判断m和n能被多少个2整除      {           m/=2;           n/=2;           i+=1;      }        if(m<n)//m保存大的值     {          temp=m;          m=n;          n=temp;     }        while(x)     {          x=m-n;          m=(n>x)?n:x;          n=(n<x)?n:x;          if(n==(m-n))          break;     }      if(i==0)      return n;          else          return (int) pow(2,i)*n;    }

4.其他方法

int gcd(int a,int b)  {      int c;      while(b)      {          c=a%b;          a=b;b=c;      }      return a;  }



作者:亿万年的星光 分类:C++知识 浏览: