• 编程题

    假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。
    输入格式:
    输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。
    输出格式:
    对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。

    输入样例:
    4 10
    SSSXXSXXSX
    SSSXXSXXS
    SSSSSSSSSSXSSXXXXXXXXXXX
    SSSXXSXXX

    输出样例:
    YES
    NO
    NO
    NO

    代码

    #include<iostream>
    using namespace std;
    int main(){
    	int n,m,i,flag=0,j,top=0,a[100]={0},k=0;
    	cin>>n>>m;
    	getchar();
    	for(i=0;i<n;i++){
    		char c;
    	    while((c=getchar())!='
    '){
    	    	if(c=='S'){
    	    	    top++;
    	    	    if(top>m)
    	    	    flag=1;
    	    	}
    	    	if(c=='X'){
    	    		top--;
    	    		if(top<0)
    	    		flag=1;
    			}
    		}
    		if(flag==0&&top==0)
    		cout<<"YES"<<endl;
    		else
    		cout<<"NO"<<endl;
    		top=0;
    		flag=0;
    	}
    	return 0;
    }
    

    给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。

    输入格式:
    输入第1行给出正整数n(≤10
    ​5
    ​​ );第2行给出n个整数,其间以空格分隔。

    输出格式:
    在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。

    输入样例:
    15
    1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
    输出样例:
    3 4 6 8

    代码

    #include<iostream>
    #define MAXN 100000
    using namespace std;
    int main(){
    	int n,i,a[MAXN],left=0,right=0,tl=0,maxl=0,t=0;
    	cin>>n;
    	for(i=0;i<n;i++)
    	cin>>a[i];
    	for(i=0;i<n;i++){
    		tl++;
    		if(tl>maxl){
    			maxl=tl;
    			left=t;
    			right=i;
    		}
    		if(a[i]>=a[i+1]){
    			t=i+1;
    			tl=0;
    		}
    	}
    	for(i=left;i<right;i++)
    	cout<<a[i]<<" ";
    	cout<<a[right];
    	return 0;
    }
    

    填空部分稍后再整理

  • 相关阅读:
    csrf
    cookies和session区别
    关于Processing开发应用及发布分享的一些经验分享
    C++调用动态链接库DLL的隐式链接和显式链接基本方法小结
    C++最基本调用静态库的方法小结
    C++最基本调用动态链接库dll方法的小结
    基于Potplayer类播放器或Action!类录屏软件调取摄像头方式的定时抓拍保存图像方法小结
    基于Openframeworks调取摄像头方式的定时抓拍保存图像方法小结
    DOS使用技巧整理 [典型案例分享]
    正则表达式使用技巧整理
  • 原文地址:https://www.cnblogs.com/XINJIUXJ/p/13700765.html
Copyright © 2020-2023  润新知