多少分

#include <iostream>
#include <cstdio>
#include <stack>


using namespace std;


bool IspopOrder(const int *pPush, const int *pPop, int length){






        bool possible = false;
        if(pPush != NULL && pPop != NULL &&length > 0){




            const int *pNextPush = pPush;
            const int *pNextPop = pPop;
            stack<int>stackData;
            while(pNextPop - pPop < length){


                while(stackData.empty() || stackData.top() != *pNextPop){




                    if(pNextPush - pPush == length){


                        break;
                    }
                    stackData.push(*pNextPush);
                    pNextPush++;
                }
                if(stackData.top() != *pNextPop){


                    break;
                }
                stackData.pop();
                pNextPop++;
            }
            if(stackData.empty() && pNextPop - pPop == length)
                possible = true;


        }
        return possible;
}


void Test1()
{
    const int nLength = 5;
    int push[nLength] = {1, 2, 3, 4, 5};
    int pop[nLength] = {4, 5, 3, 2, 1};


    Test("Test1", push, pop, nLength, true);
}


void Test2()
{
    const int nLength = 5;
    int push[nLength] = {1, 2, 3, 4, 5};
    int pop[nLength] = {3, 5, 4, 2, 1};


    Test("Test2", push, pop, nLength, true);
}


void Test3()
{
    const int nLength = 5;
    int push[nLength] = {1, 2, 3, 4, 5};
    int pop[nLength] = {4, 3, 5, 1, 2};


    Test("Test3", push, pop, nLength, false);
}


void Test4()
{
    const int nLength = 5;
    int push[nLength] = {1, 2, 3, 4, 5};
    int pop[nLength] = {3, 5, 4, 1, 2};


    Test("Test4", push, pop, nLength, false);
}


// push和pop序列只有一个数字
void Test5()
{
    const int nLength = 1;
    int push[nLength] = {1};
    int pop[nLength] = {2};


    Test("Test5", push, pop, nLength, false);
}


void Test6()
{
    const int nLength = 1;
    int push[nLength] = {1};
    int pop[nLength] = {1};


    Test("Test6", push, pop, nLength, true);
}


void Test7()
{
    Test("Test7", NULL, NULL, 0, false);
}


int main()
{
    Test1();
    Test2();
    Test3();
    Test4();
    Test5();
    Test6();
    Test7();
    return 0;
}
### CCF CSP认证的数要求及通过标准 CCF CSP(Computer Software Professional)认证是一项面向软件开发人员的专业级能力评估测试。认证采用上机编程的方式进行,总为500,共包含5道题目,每题100[^2]。从第一题至第五题,难度依次递增,考试时间为4小时。 #### 通过标准 CCF CSP认证并未设定固定的及格数线,而是根据每次考试的整体成绩布来决定通过标准。通常情况下,获得一定比例的有效数即可被认定为通过。例如,在某些认证中,达到总的40%(即200左右)可能被视为通过的最低要求[^2]。然而,具体的通过数会因每次考试的难度和考生表现而有所不同。 #### 前百之三的成绩要求 对于希望进入前百之三的考生而言,通常需要取得非常高的数。例如,在某次认证中,前百之三的考生可能需要达到400以上[^1]。这部考生不仅需要正确解决所有简单和中等难度的问题,还需要在高难度题目上表现出色。 #### 成绩等级划 CCF CSP认证的成绩通常划为多个等级,例如“优秀”、“良好”和“合格”。具体等级划依据如下: - **优秀**:通常需要达到400以上。 - **良好**:一般需要达到300以上。 - **合格**:通常需要达到200以上。 以下是一个简单的示例代码,用于解决常见的CSP问题之一——快速排序算法实现: ```python def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) ``` #### 认证环境准备 在参加认证之前,考生需要熟悉认证的上机环境,并确保能够在限定的时间内高效完成任务。建议考生提前练习类似题型,提高编程速度和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值