<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            華為上機試題

            時間:2024-09-20 19:40:10 華為認證 我要投稿

            華為上機試題匯總

              華為上機考試有哪些考點呢?下面跟yjbys小編一起來看看吧!希望這些上機試題能幫助大家順利通過考試!

            華為上機試題匯總

              地區一:

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

              題目一的意思應該是求解字符串str中子字符串sub_str的個數,同時輸出形式采用原字符串+"_"匹配次數

              相信大家第一反應應該是采用kmp,那么下面給出常規優化kmp程序如下(采用字符串數組形式):

              #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. 高精度數相加,string addBigInt(string num1,string num2) 需要考慮正負數相加

              這道題是高精度計算中的最最簡單的一題:

              目的是模擬人手工運算的過程,進而進行結果的現實;

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

              地區二:

              第一題【20分】:鑒定回文數組

              給定一個數組判斷是否是回文,這題沒什么好說明,直接看代碼:

              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分】:求兩個整型數組的異集,即A+B-(A與B的交集)。

              這里只是提供我的一個思路:

              這個問題的求解可以簡化為統計數組A B中任何字符的個數,A+B-(A與B的交集)的結果就是統計僅僅出現過一次的數字:

              但是題目中沒有限制是字符,而是整形,數據量太大,這里借用了map操作,進行簡化內存:

              針對這個思路程序如下:

              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個的,3個+對子,順子,3個+2個單張,2對,1對,其他。

              德州撲克我還是很喜歡玩的,其中牌型牌型可以有近10中結果,題目僅僅讓我們判斷七種。但是這七種結果不具有繼承性,所以我們設計一個好的程序。

              那么就要統一他們的表現形式,下面是我的思路:

              排序

              判斷跳變次數

              進行篩選結果

              這樣可以較為統一的處理各種結果,參考程序如下:

              1 #include

              2 #include

              3 using namespace std;

              4

              5 struct Node{

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

              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 //獲取每個的個數

              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<<"不好意思,出了個順子"<

              83 }

              84 else

              85 cout<<"五張單牌"<

              86 }

              87 }

              88

              89 //傳入大小為5的結構體數組

              90 //進行判斷

              91 int getType(Node* Nv)

              92 {

              93 //首先排序

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

              95 //提取個數

              96 getN(Nv);

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

              98

              99 //根據n_數組進行判斷

              100

              101 if(n_of_v[0]==4)

              102 {

              103 cout<<"四個一樣的哦"<

              104 }

              105

              106 return 1;

              107 }

              108 int main()

              109 {

              110 getType(N);

              111 showResult();

              112 return 1;

              113 }

            【華為上機試題】相關文章:

            華為Java上機考試題07-04

            2016年華為上機考試題10-27

            華為筆試題及答案11-01

            word上機測試題及答案02-24

            華為JAVA考試試題11-01

            華為認證最新試題及答案08-28

            excel上機測試題「附解答」07-28

            2017華為筆試面試試題06-30

            華為2017筆試試題07-06

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看