题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

/**

  • 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
  • @param pushV int整型一维数组
  • @param pushVLen int pushV数组长度
  • @param popV int整型一维数组
  • @param popVLen int popV数组长度
  • @return bool布尔型
  • C语言声明定义全局变量请加上static,防止重复定义
  • C语言声明定义全局变量请加上static,防止重复定义 */
#include<stdbool.h>
bool IsPopOrder(int* pushV, int pushVLen, int* popV, int popVLen ) {
    // write code here
    int i=0;
    int push_count=-1;
    int pop_count=0;
    int val;
    int *stack = (int*)malloc(pushVLen*1001*sizeof(int));
    for(i=0;i<pushVLen;i++)
    {
        push_count++;
        *(stack + push_count) = *(pushV+i);
  //判断当前栈顶 和popV 这个是不是相等&&以防一直在这个while循环里,导致pop_count大于popVLen&&push_count<0
        while(*(stack + push_count)==*(popV+pop_count)&&pop_count<popVLen&&push_count>=0)
        {
             val = *(stack + push_count);
             printf("%d",val);
            push_count--;
            pop_count++;           
        }       
    }
    if(pop_count ==popVLen )
       return true;
    else 
        return false;
    return false;
}
全部评论

相关推荐

头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务