<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 華為筆試題

    時間:2020-08-16 15:51:33 華為認證 我要投稿

    華為2017筆試題

      華為認證覆蓋路由交換、 無線局域網、無線、傳送網、安全、統一通信、視訊 、 云計算、服務器、存儲以及ICT融合設計等11個技術領域。下面是小編整理的關于華為2017筆試題,希望大家認真閱讀!

    華為2017筆試題

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

      1.1問題描述

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

      1.2問題求解

      這個比較簡單,給出如下參考代碼:

      #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.成績排名

      2.1問題描述

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

      LOD GRADE命令,其格式:

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

      (1) 此命令用于導入學生成績

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

      (3) MATH字段表示學生數學成績

      (4) LANG字段表示語文成績

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

      (6) 相同的分數,名次相同,后面的名次空缺;例如100,99,99,99,98,98,名次:1,2,2,2,5,5

      (7) 此命令會連續執行,直到遇到第一個LST GRADE

      LST GRADE命令,其格式:

      LST GRADE:NAME=XiaoMing;

      (1) 此命令用于查詢學生成績

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

      (3) 查詢結果格式:姓名 數學 語文 總分 數學排名 語文排名 總排名

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

      輸入: 連續多組LOD GRADE后跟一個LST GRADE查詢命令

      輸出: 輸出查詢格式為:

      姓名 數學 語文 總分 數學排名 語文排名 總排名

      樣例輸入: 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問題求解

      此問題也不難,沒有涉及到復雜的算法,就是比較繁瑣,主要考察數據的表示,字符串的提取與排序,下面給出參考代碼:

      #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;

      }

      };

      //自定義比較函數,數學排名

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

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

      }

      //自定義比較函數,語文排名

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

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

      }

      //自定義比較函數,總分排名

      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){ //輸入成績

      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 { //查詢成績

      e=input.length()-1;

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

      Student student;

      //數學排名

      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;

      //語文排名

      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動態規劃法求解

      遞歸法易于理解,但是存在對子問題的重復計算,時間效率低下,可以將子問題的結果存儲起來,把遞歸實現,轉換為迭代實現,這樣就變成了動態規劃。遞歸法是自頂向下,而動態規劃是自底向上遞歸法是需要某個結果時就調用自己來計算,動態規劃把每次遞推的結果保存在數組中。因為這里有i,ir,j,jr一個4個變量,所以其實需要一個4維數組,這里用了一個宏代替,將4維數組通過下標轉變變為一維數組。具體實現參考如下代碼:

      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

    【華為2017筆試題】相關文章:

    華為上機試題匯總11-12

    華為認證筆試題大全11-09

    華為面試題2017年05-20

    華為2017筆試試題05-15

    2017華為筆試面試試題05-15

    華為認證最新試題及答案09-27

    華為測試面試題匯總09-02

    2017華為JAVA考試試題10-26

    華為Java面試題精選10-24

    主站蜘蛛池模板: 国产精品亚洲午夜一区二区三区| 亚洲国产精品自在线一区二区| 国产精品亚洲片在线观看不卡 | 久久精品国产亚洲AV香蕉| 久久久九九有精品国产| 亚洲精品无码不卡在线播HE | 精品无码日韩一区二区三区不卡 | MM1313亚洲国产精品| 人妻少妇看A偷人无码精品| 久久99国产精品99久久| 国产精品美女免费视频观看| 99精品国产高清一区二区麻豆| 亚洲一区爱区精品无码| 欧美人与性动交α欧美精品| 国产精品久久久久久久午夜片| 成人区人妻精品一区二区不卡网站| 亚洲精品亚洲人成在线观看| 久久99精品国产麻豆不卡| 欧美巨大黑人精品videos| 国内精品久久久久影院日本| 亚洲av午夜成人片精品电影| 国产精品国产三级国产潘金莲| 91精品啪在线观看国产| 久久亚洲精品人成综合网| 无码精品前田一区二区| 国产小呦泬泬99精品| 99在线精品免费视频| 华人亚洲欧美精品国产| 国产精品白丝AV网站| 日韩精品无码免费一区二区三区 | 国产成人久久精品区一区二区| 久久亚洲中文字幕精品有坂深雪| 伊人精品久久久久7777| 久久精品国产清自在天天线| 国产区精品福利在线观看精品| 国产高清一级毛片精品| 97精品在线播放| A级毛片无码久久精品免费| 国产av无码专区亚洲国产精品| 亚洲国产精品嫩草影院| 秋霞午夜鲁丝片午夜精品久|