中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      華為筆試題

      時(shí)間:2024-09-24 22:01:55 華為認(rèn)證 我要投稿

      華為2017筆試題

        華為認(rèn)證覆蓋路由交換、 無(wú)線局域網(wǎng)、無(wú)線、傳送網(wǎng)、安全、統(tǒng)一通信、視訊 、 云計(jì)算、服務(wù)器、存儲(chǔ)以及ICT融合設(shè)計(jì)等11個(gè)技術(shù)領(lǐng)域。下面是小編整理的關(guān)于華為2017筆試題,希望大家認(rèn)真閱讀!

      華為2017筆試題

        1.刪除字符串中的指定字符

        1.1問(wèn)題描述

        輸入兩個(gè)字符串M和N,從字符串M中刪除字符串N中所有的字符。例如,輸入”abcda”和”ac”,則刪除之后的第一個(gè)字符串變成”bd”。

        1.2問(wèn)題求解

        這個(gè)比較簡(jiǎn)單,給出如下參考代碼:

        #include

        using namespace std;

        void deleteCharacter(string& str0,string& str1){

        for(int i=0;i

        if(str1.find(str0[i])!=string::npos){

        str0.erase(i,1);

        continue;

        }

        ++i;

        }

        }

        2.成績(jī)排名

        2.1問(wèn)題描述

        題目總共包含如下兩種格式的字符串命令:

        LOD GRADE命令,其格式:

        LOD GRADE:NAME=XiaoMing,MATH=80,LANG=90;

        (1) 此命令用于導(dǎo)入學(xué)生成績(jī)

        (2) NAME字段表示學(xué)生姓名

        (3) MATH字段表示學(xué)生數(shù)學(xué)成績(jī)

        (4) LANG字段表示語(yǔ)文成績(jī)

        (5) MATH字段和LANG字段順序不一定MATH在前,LANG在后

        (6) 相同的分?jǐn)?shù),名次相同,后面的名次空缺;例如100,99,99,99,98,98,名次:1,2,2,2,5,5

        (7) 此命令會(huì)連續(xù)執(zhí)行,直到遇到第一個(gè)LST GRADE

        LST GRADE命令,其格式:

        LST GRADE:NAME=XiaoMing;

        (1) 此命令用于查詢(xún)學(xué)生成績(jī)

        (2) NAME字段表示學(xué)生姓名

        (3) 查詢(xún)結(jié)果格式:姓名 數(shù)學(xué) 語(yǔ)文 總分 數(shù)學(xué)排名 語(yǔ)文排名 總排名

        (4) 每組用例,此命令僅執(zhí)行一次

        輸入: 連續(xù)多組LOD GRADE后跟一個(gè)LST GRADE查詢(xún)命令

        輸出: 輸出查詢(xún)格式為:

        姓名 數(shù)學(xué) 語(yǔ)文 總分 數(shù)學(xué)排名 語(yǔ)文排名 總排名

        樣例輸入: LOD GRADE:NAME=XiaoMing,MATH=80,LANG=90;

        LOD GRADE:NAME=XiaoHong,LANG=60,MATH=100;

        LOD GRADE:NAME=XiaoMei,MATH=70,LANG=90;

        LST GRADE:NAME=XiaoHong;

        樣例輸出: XiaoHong 100 60 160 1 3 2

        2.2問(wèn)題求解

        此問(wèn)題也不難,沒(méi)有涉及到復(fù)雜的算法,就是比較繁瑣,主要考察數(shù)據(jù)的表示,字符串的提取與排序,下面給出參考代碼:

        #include

        #include

        #include

        #include

        using namespace std;

        struct Student{

        string name;

        int math;

        int lang;

        Student(){

        this->name="";

        this->math=0;

        this->lang=0;

        }

        Student(string name,int math,int lang){

        this->name=name;

        this->math=math;

        this->lang=lang;

        }

        bool operator==(const Student& ele){

        return this->name==ele.name;

        }

        };

        //自定義比較函數(shù),數(shù)學(xué)排名

        bool compareMath(const Student& left,const Student& right){

        return left.math>right.math; //降序排列

        }

        //自定義比較函數(shù),語(yǔ)文排名

        bool compareLang(const Student& left,const Student& right){

        return left.lang>right.lang; //降序排列

        }

        //自定義比較函數(shù),總分排名

        bool compareTotal(const Student& left,const Student& right){

        return left.math+left.lang>right.math+right.lang; //降序排列

        }

        int main(){

        vector studentVec;

        string input;

        Student student;

        vector splitedRes;

        while(getline(cin,input)){

        int s=input.find("NAME=");

        int e=input.find(',',s);

        if(input.find("LOD GRADE")!=string::npos){ //輸入成績(jī)

        student.name=input.substr(s+5,e-s-5);

        s=input.find("MATH=");

        e=input.find(',',s);

        if(e==string::npos) e=input.length()-1;

        student.math=stoi(input.substr(s+5,e-s-5));

        s=input.find("LANG=");

        e=input.find(',',s);

        if(e==string::npos) e=input.length()-1;

        student.lang=stoi(input.substr(s+5,e-s-5));

        studentVec.push_back(student);

        }else { //查詢(xún)成績(jī)

        e=input.length()-1;

        string name=input.substr(s+5,e-s-5);

        Student student;

        //數(shù)學(xué)排名

        std::sort(studentVec.begin(),studentVec.end(),compareMath);

        vector::iterator it=find(studentVec.begin(),studentVec.end(),Student(name,0,0));

        student=*it;

        while(it!=studentVec.begin()&&(it-1)->math==it->math) --it;

        int mathRank=it-studentVec.begin()+1;

        //語(yǔ)文排名

        std::sort(studentVec.begin(),studentVec.end(),compareLang);

        it=find(studentVec.begin(),studentVec.end(),Student(name,0,0));

        while(it!=studentVec.begin()&&(it-1)->lang==it->lang) --it;

        int langRank=it-studentVec.begin()+1;

        //總分排名

        std::sort(studentVec.begin(),studentVec.end(),compareTotal);

        it=find(studentVec.begin(),studentVec.end(),Student(name,0,0));

        while(it!=studentVec.begin()&&(it-1)->math+(it-1)->lang==it->math+it->lang) --it;

        int totalRank=it-studentVec.begin()+1;

        cout<

        cout<

        3.2動(dòng)態(tài)規(guī)劃法求解

        遞歸法易于理解,但是存在對(duì)子問(wèn)題的重復(fù)計(jì)算,時(shí)間效率低下,可以將子問(wèn)題的結(jié)果存儲(chǔ)起來(lái),把遞歸實(shí)現(xiàn),轉(zhuǎn)換為迭代實(shí)現(xiàn),這樣就變成了動(dòng)態(tài)規(guī)劃。遞歸法是自頂向下,而動(dòng)態(tài)規(guī)劃是自底向上遞歸法是需要某個(gè)結(jié)果時(shí)就調(diào)用自己來(lái)計(jì)算,動(dòng)態(tài)規(guī)劃把每次遞推的結(jié)果保存在數(shù)組中。因?yàn)檫@里有i,ir,j,jr一個(gè)4個(gè)變量,所以其實(shí)需要一個(gè)4維數(shù)組,這里用了一個(gè)宏代替,將4維數(shù)組通過(guò)下標(biāo)轉(zhuǎn)變變?yōu)橐痪S數(shù)組。具體實(shí)現(xiàn)參考如下代碼:

        int func2 (const string &a ,const string &b) {

        const int la = (int) a.length () ;

        const int lb = (int) b.length () ;

        vector ret (la * la * lb * lb) ;

        #define VRET(a ,b ,c ,d) (ret[(a) * la * lb * lb + (b) * lb * lb + (c) * lb + (d)])

        for (int ix = la - 1 ; ix >= 0 ; ix--)

        for (int irx =ix ; irx < la ; irx++)

        for (int jx = lb - 1 ; jx >= 0 ; jx--)

        for (int jrx =jx ; jrx < lb ; jrx++) {

        int i = ix ;

        int ir = irx ;

        int j = jx ;

        int jr = jrx ;

        while (i <= ir && j <= jr && a[i] == b[j]) {

        i++ ;

        j++ ;

        }

        while (i <= ir && j <= jr && a[ir] == b[jr]) {

        ir-- ;

        jr-- ;

        }

        if (i > ir) { //A為空串

        VRET (ix ,irx ,jx ,jrx) = (jr + 1 - j) + 2 ;

        continue ;

        } else if (j > jr) { //B為空串

        VRET (ix ,irx ,jx ,jrx) = 2 ;

        continue ;

        }

        int tmp = 2 + (jr + 1 - j) + 2 ; //最壞情況,將A全部刪除再增加到B

        for (int k = i + 1 ; k <= ir ; k++)

        tmp = min (tmp ,2 + VRET (k ,ir ,j ,jr)) ;

        for (int k = ir - 1 ; k >= i ; k--)

        tmp = min (tmp ,2 + VRET (i ,k ,j ,jr)) ;

        for (int k = j + 1 ; k <= jr ; k++)

        tmp = min (tmp ,(k - j) + 2 + VRET (i ,ir ,k ,jr));

        for (int k = jr - 1 ; k >= j ; k--)

        tmp = min (tmp ,(jr-k) + 2 + VRET (i ,ir ,j ,k));

        VRET (ix ,irx ,jx ,jrx) = tmp ;

        continue ;

        }

        return VRET (0 ,la - 1 ,0 ,lb - 1) ;

        #undef VRET

      【華為筆試題】相關(guān)文章:

      華為2017筆試試題07-06

      華為上機(jī)試題匯總09-20

      華為筆試題及答案11-01

      華為JAVA考試試題11-01

      華為Java面試題精選10-13

      華為認(rèn)證最新試題及答案08-28

      華為認(rèn)證筆試題大全08-15

      華為C語(yǔ)言上機(jī)試題及答案07-01

      華為測(cè)試面試題匯總09-19

      華為認(rèn)證考試試題及答案08-20

      主站蜘蛛池模板: 抚顺县| 97久久久人妻精品区一| 国产精品欧美成人片| av免费在线免费在线观看| 中文字幕少妇人妻视频| 男女高潮免费观看无遮挡| 国产在线一区二区三区| 丰满人妻中文字幕乱码| 庄河市| 汶上县| 荣昌县| av免费网站在线免费观看| 人妻一区二区三区蜜桃| 青青草视频在线观看视频网站| 亚洲日韩精品AⅤ片无码富二代 | 亚洲男人堂色偷偷一区| 中文日产幕无限码一区| 久久人妻av不卡中文字幕| 张家口市| 亚洲国产字幕| 铁力市| 虹口区| 久久久久AV成人无码网站| 鄂伦春自治旗| 中国国内新视频在线不卡免费看| 博湖县| 平南县| 胶南市| 东城区| 国产成人无精品久久久| 538在线视频| 亚洲乱码中文字幕综合| 国产精品久久成人午夜一区二区| 久久久久久久久国内精品影视| 538亚洲欧美国产日韩在线精品| 对白刺激的老熟女露脸| 国产亚洲精品综合在线网址| 国产成人亚洲合集青青草原精品 | 国产精品制服一区二区| 无码av一区在线观看| 色婷婷一区二区三区四区|