PAT_1057. Stack(3个case超时)

来源:互联网 发布:乌克兰 俄罗斯 知乎 编辑:程序博客网 时间:2024/06/10 18:44
////  main.cpp//  PAT_1057. Stack////  Created by wjq on 17/5/16.//  Copyright © 2017年 wjq. All rights reserved.//#include <iostream>#include <algorithm>#include <stdio.h>using namespace std;int A[100005],a=-1,N,num;char operation[20];string temp;int findNum(){    int temp[100005];    for(int i=0;i<=a;i++)        temp[i]=A[i];    sort(temp,temp+a+1);        return temp[a/2];}int main(int argc, const char * argv[]){    scanf("%d",&N);    getchar();    for(int i=0;i<N;i++)    {        gets(operation);        temp=operation;        switch (temp[1])        {            case 'o':                if(a==-1)                    cout<<"Invalid"<<endl;                else                    cout<<A[a--]<<endl;                break;            case 'e':                if(a==-1)                    cout<<"Invalid"<<endl;                else                    cout<<findNum()<<endl;                break;            case 'u':                num=atoi(temp.substr(5,temp.length()-5).c_str());                A[++a]=num;                break;        }    }    return 0;}


3个case超时,网上查了之后是线段数组,没学过,以后填坑吧,现阶段只想快点把100题刷完.

复习了3个知识点

1.string 类型的怎么取部分串

xxx.substr(a,b);意思是取xxx串中从下标a开始的b个字符串.

2.string如何转换成char[]

xxx.c_str()

3.char[]如何转换成int

atoi(xxx);