1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 華為上機(jī)試題

        時(shí)間:2023-01-23 08:13:12 華為認(rèn)證 我要投稿

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

          華為上機(jī)考試有哪些考點(diǎn)呢?下面跟yjbys小編一起來(lái)看看吧!希望這些上機(jī)試題能幫助大家順利通過(guò)考試!

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

          地區(qū)一:

          1. 編寫(xiě)函數(shù)string deletestring(string str,string sub_str)從str中查找匹配的字符串sub_str,采用最左匹配,且輸出形式為str+"_"+匹配的次數(shù)

          題目一的意思應(yīng)該是求解字符串str中子字符串sub_str的個(gè)數(shù),同時(shí)輸出形式采用原字符串+"_"匹配次數(shù)

          相信大家第一反應(yīng)應(yīng)該是采用kmp,那么下面給出常規(guī)優(yōu)化kmp程序如下(采用字符串?dāng)?shù)組形式):

          #include

          using namespace std;

          int next[100];

          void getnext(char b[])

          {

          int i=1,j=0; //ij

          next[1]=0;

          while(i<=strlen(b))

          {

          if(j==0||b[i-1]==b[j-1])

          {

          i++;

          j++;

          next[i]=j;

          }

          else j=next[j]; //

          }

          }

          int kmp(char a[],char b[])

          {

          int i=1,j=1; //i j

          while(i<=strlen(a)&&j<=strlen(b))

          {

          if(j==0||a[i-1]==b[j-1])

          {

          i++;

          j++;

          }

          else j=next[j];

          }

          if(j>strlen(b))

          return i-strlen(b);

          else return 0;

          }

          2. 高精度數(shù)相加,string addBigInt(string num1,string num2) 需要考慮正負(fù)數(shù)相加

          這道題是高精度計(jì)算中的最最簡(jiǎn)單的一題:

          目的是模擬人手工運(yùn)算的過(guò)程,進(jìn)而進(jìn)行結(jié)果的現(xiàn)實(shí);

          參考代碼(編譯環(huán)境:Visual Studio 6):

          地區(qū)二:

          第一題【20分】:鑒定回文數(shù)組

          給定一個(gè)數(shù)組判斷是否是回文,這題沒(méi)什么好說(shuō)明,直接看代碼:

          1 #include

          2 using namespace std;

          3

          4 bool isHuiWen(string s)

          5 {

          6 int length_s=s.length();

          7 int i=0;

          8 for(i=0;i<(length_s>>1);i++)

          9 {

          10 if(s.at(i)!=s.at(length_s-1-i))

          11 return false;

          12 }

          13 return true;

          14 }

          15

          16 int main()

          17 {

          18 string ss="iloveevolis";

          19 if(isHuiWen(ss))

          20 {

          21 cout<<"Huiwen"<

          22 }

          23 else

          24 {

          25 cout<<"No"<

          26 }

          27 return 1;

          28 }

          第二題【30分】:求兩個(gè)整型數(shù)組的異集,即A+B-(A與B的交集)。

          這里只是提供我的一個(gè)思路:

          這個(gè)問(wèn)題的求解可以簡(jiǎn)化為統(tǒng)計(jì)數(shù)組A B中任何字符的個(gè)數(shù),A+B-(A與B的交集)的結(jié)果就是統(tǒng)計(jì)僅僅出現(xiàn)過(guò)一次的數(shù)字:

          但是題目中沒(méi)有限制是字符,而是整形,數(shù)據(jù)量太大,這里借用了map操作,進(jìn)行簡(jiǎn)化內(nèi)存:

          針對(duì)這個(gè)思路程序如下:

          1 #include

          2 #include

          3 using namespace std;

          4

          5 map mi;

          6 map::iterator mit;

          7 int A[10]={1,2,3,4,5,6,3,2,8,9};

          8 int B[10]={8,7,6,5,9,0,3,4,8,40};

          9 int R[20];

          10 int RC=0;

          11

          12

          13 void getAB(int* a,int na,int* b,int nb)

          14 {

          15 string re;

          16 mi.clear();

          17 for(int i=0;i

          18 {

          19 mit=mi.find(a[i]);

          20 if(mit!=mi.end())

          21 {

          22 mit->second++;

          23 }

          24 else

          25 {

          26 mi.insert(make_pair(a[i],1));

          27 }

          28 }

          29

          30 for(i=0;i

          31 {

          32 mit=mi.find(b[i]);

          33 if(mit!=mi.end())

          34 {

          35 mit->second++;

          36 }

          37 else

          38 {

          39 mi.insert(make_pair(b[i],1));

          40 }

          41 }

          42

          43 for(mit=mi.begin(),i=0;mit!=mi.end();mit++)

          44 {

          45 if(mit->second==1)

          46 {

          47 R[i++]=mit->first;

          48 }

          49 }

          50 RC=i;

          51 }

          52

          53 int main()

          54 {

          55 getAB(A,10,B,10);

          56 for(int i=0;i

          57 {

          58 cout<

          59 }

          60 return 1;

          61 }

          第三題【50分】:判定德州撲克的牌型。給5張牌,返回它的牌型,4個(gè)的,3個(gè)+對(duì)子,順子,3個(gè)+2個(gè)單張,2對(duì),1對(duì),其他。

          德州撲克我還是很喜歡玩的,其中牌型牌型可以有近10中結(jié)果,題目?jī)H僅讓我們判斷七種。但是這七種結(jié)果不具有繼承性,所以我們?cè)O(shè)計(jì)一個(gè)好的程序。

          那么就要統(tǒng)一他們的表現(xiàn)形式,下面是我的思路:

          排序

          判斷跳變次數(shù)

          進(jìn)行篩選結(jié)果

          這樣可以較為統(tǒng)一的處理各種結(jié)果,參考程序如下:

          1 #include

          2 #include

          3 using namespace std;

          4

          5 struct Node{

          6 char type;//0 1 2 3四種花色,可以考慮用enum類(lèi)型

          7 int v;//面值

          8 };

          9

          10 Node N[5]={

          11 {0,5},

          12 {0,9},

          13 {0,2},

          14 {0,9},

          15 {0,9},

          16 };

          17

          18 int n_of_v[5]={0,0,0,0,0};

          19

          20 bool myCMP(Node& a,Node& b)

          21 {

          22 return a.v>b.v;

          23 }

          24

          25 bool myNCMP(int a,int b)

          26 {

          27 return a>b;

          28 }

          29

          30 //獲取每個(gè)的個(gè)數(shù)

          31 int getN(Node* Nv)

          32 {

          33 int i=0;

          34 int j=0;

          35 int n=1;

          36 for(i=0;i<4;i++)

          37 {

          38 if(Nv[i].v==Nv[i+1].v)

          39 {

          40 n++;

          41 }

          42 else

          43 {

          44 n_of_v[j++]=n;

          45 n=1;

          46 }

          47 }

          48 n_of_v[j++]=n;

          49 return j;

          50 }

          51

          52 void showResult()

          53 {

          54 if(n_of_v[0]==4)

          55 {

          56 cout<<"4+1"<

          57 }

          58 else if(n_of_v[0]==3&&n_of_v[1]==2)

          59 {

          60 cout<<"3+2"<

          61 }

          62 else if(n_of_v[0]==3&&n_of_v[1]==1)

          63 {

          64 cout<<"3+1+1"<

          65 }

          66 else if(n_of_v[0]==2&&n_of_v[1]==2)

          67 {

          68 cout<<"2+2+1"<

          69 }

          70 else if(n_of_v[0]==2&&n_of_v[1]==1)

          71 {

          72 cout<<"2+1+1+1"<

          73 }

          74 else if(n_of_v[0]==1)

          75 {

          76 //可能是順子

          77 if(N[0].v==N[1].v+1

          78 &&N[1].v==N[2].v+1

          79 &&N[2].v==N[3].v+1

          80 &&N[3].v==N[4].v+1)

          81 {

          82 cout<<"不好意思,出了個(gè)順子"<

          83 }

          84 else

          85 cout<<"五張單牌"<

          86 }

          87 }

          88

          89 //傳入大小為5的結(jié)構(gòu)體數(shù)組

          90 //進(jìn)行判斷

          91 int getType(Node* Nv)

          92 {

          93 //首先排序

          94 sort(N,N+5,myCMP);

          95 //提取個(gè)數(shù)

          96 getN(Nv);

          97 sort(n_of_v,n_of_v+5,myNCMP);

          98

          99 //根據(jù)n_數(shù)組進(jìn)行判斷

          100

          101 if(n_of_v[0]==4)

          102 {

          103 cout<<"四個(gè)一樣的哦"<

          104 }

          105

          106 return 1;

          107 }

          108 int main()

          109 {

          110 getType(N);

          111 showResult();

          112 return 1;

          113 }

        【華為上機(jī)試題】相關(guān)文章:

        2016年華為上機(jī)考試題08-27

        word上機(jī)測(cè)試題及答案08-08

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

        華為測(cè)試面試題匯總05-21

        2017華為JAVA考試試題08-28

        計(jì)算機(jī)二級(jí)VB上機(jī)試題及答案09-04

        2016華為HCNE認(rèn)證模擬試題及答案08-23

        2017年華為筆試題及答案08-29

        2016年華為機(jī)試題及答案08-22

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>