亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

華為筆試算法題匯總

2020-01-26 13:25:06
字體:
來源:轉載
供稿:網友

本文為大家分享了華為2014筆試4道算法題,供大家參考,具體內容如下

1.通過鍵盤輸入一串小寫字母(a~z)組成的字符串。請編寫一個字符串過濾程序,若字符串中出現多個相同的字符,將非首次出現的字符過濾掉。

比如字符串“abacacde”過濾結果為“abcde”。

要求實現函數:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);

【輸入】 pInputStr:  輸入字符串
                 lInputLen:  輸入字符串長度         
【輸出】 pOutputStr: 輸出字符串,空間已經開辟好,與輸入字符串等長; 

【注意】只需要完成該函數功能算法,中間不需要有任何IO的輸入輸出

示例 

輸入:“deefd”        輸出:“def”
輸入:“afafafaf”     輸出:“af”
輸入:“pppppppp”     輸出:“p”

main函數已經隱藏,這里保留給用戶的測試入口,在這里測試你的實現函數,可以調用printf打印輸出
當前你可以使用其他方法測試,只要保證最終程序能正確執行即可,該函數實現可以任意修改,但是不要改變函數原型。

一定要保證編譯運行不受影響

//////////////////////////////////////////////////////////////////////////華為第一題 19:19-19:36 17分鐘 #include <iostream> #include <cassert>  using namespace std;  bool g_flag[26]; void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr) {  assert(pInputStr != NULL);  int i = 0;  if (pInputStr == NULL || lInputLen <= 1)  {   return;  }  const char *p = pInputStr;  while(*p != '/0')  {   if (g_flag[(*p - 'a')])   {    p++;   }else{    pOutputStr[i++] = *p;    g_flag[*p - 'a'] = 1;    p++;   }  }  pOutputStr[i] = '/0'; } int main() {  memset(g_flag,0,sizeof(g_flag));  char input[] = "abacacde";  char *output = new char[strlen(input) + 1];  stringFilter(input,strlen(input),output);  cout<<output<<endl;  delete output;  return 0; } 

2.通過鍵盤輸入一串小寫字母(a~z)組成的字符串。請編寫一個字符串壓縮程序,將字符串中連續出席的重復字母進行壓縮,并輸出壓縮后的字符串。

壓縮規則:

1、僅壓縮連續重復出現的字符。比如字符串"abcbc"由于無連續重復字符,壓縮后的字符串還是"abcbc"。
2、壓縮字段的格式為"字符重復的次數+字符"。例如:字符串"xxxyyyyyyz"壓縮后就成為"3x6yz"。

要求實現函數: 

void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);

【輸入】 pInputStr:  輸入字符串
            lInputLen:  輸入字符串長度
【輸出】 pOutputStr: 輸出字符串,空間已經開辟好,與輸入字符串等長;

【注意】只需要完成該函數功能算法,中間不需要有任何IO的輸入輸出

示例 

輸入:“cccddecc”   輸出:“3c2de2c”
輸入:“adef”     輸出:“adef”
輸入:“pppppppp” 輸出:“8p”

//////////////////////////////////////////////////////////////////////////華為第二題 19:40 - 20:10 中間耽誤3分鐘 #include <iostream> #include <cassert>  using namespace std;  void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr) {  const char *p = pInputStr;  int num = 1;  int i = 0;  p++;  while(*p != NULL)  {   while(*p == *(p-1)&& *p != NULL)   {   num++;   p++;   }   if (num > 1)   {    int size = 0;    int temp = num;    while(num)    //計算位數    {     size++;     num /= 10;    }    num = 1;     for (int j = size; j > 0; j--)    {     pOutputStr[i+j-1] = '0'+ temp%10;     temp /= 10;    }    i +=size;    pOutputStr[i++] = *(p-1);    p++;   }else{    pOutputStr[i++] = *(p-1);    p++;   }  }  pOutputStr[i] = '/0'; }  int main() {  char input[] = "cccddecc";  char *output = new char[strlen(input) + 1];  stringZip(input,strlen(input),output);  cout<<output<<endl;  return 0; } 

3.通過鍵盤輸入100以內正整數的加、減運算式,請編寫一個程序輸出運算結果字符串。

輸入字符串的格式為:“操作數1 運算符 操作數2”,“操作數”與“運算符”之間以一個空格隔開。

補充說明:

1、操作數為正整數,不需要考慮計算結果溢出的情況。
2、若輸入算式格式錯誤,輸出結果為“0”。

要求實現函數: 
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);

【輸入】 pInputStr:  輸入字符串
            lInputLen:  輸入字符串長度         
【輸出】 pOutputStr: 輸出字符串,空間已經開辟好,與輸入字符串等長; 

【注意】只需要完成該函數功能算法,中間不需要有任何IO的輸入輸出

示例 
輸入:“4 + 7”  輸出:“11”
輸入:“4 - 7”  輸出:“-3”
輸入:“9 ++ 7”  輸出:“0” 注:格式錯誤

//////////////////////////////////////////////////////////////////////////華為第三題 20:29 - 20:40 #include <iostream>  using namespace std;  void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr) {  const char *input = pInputStr;   char *output = pOutputStr;  int sum = 0;  int operator1 = 0;  int operator2 = 0;  char *temp = new char[5];  char *ope = temp;  while(*input != ' ') //獲得操作數1  {   sum = sum*10 + (*input++ - '0');  }  input++;  operator1 = sum;  sum = 0;   while(*input != ' ')  {   *temp++ = *input++;  }   input++;  *temp = '/0';   if (strlen(ope) > 1 )  {   *output++ = '0';   *output = '/0';   return;  }   while(*input != '/0') //獲得操作數2  {   sum = sum*10 + (*input++ - '0');  }  operator2 = sum;  sum = 0;   switch (*ope)  {  case '+':itoa(operator1+operator2,pOutputStr,10);   break;  case '-':itoa(operator1-operator2,pOutputStr,10);  break;  default:   *output++ = '0';   *output = '/0';   return;  } }  int main() {  char input[] = "4 - 7";  char output[] = " ";  arithmetic(input,strlen(input),output);  cout<<output<<endl;  return 0; } 

4.輸入1--50個數字,求出最小數和最大數的和

//華為2014年機試題1:輸入1--50個數字,求出最小數和最大數的和 //輸入以逗號隔開 #include<stdio.h> #define N 50 void sort(int a[],int n); int main(void) {    char str[100];  int a[N]={0};  gets(str);  //要點1:動態的輸入1--50個整數,不能確定個數,只能用字符串輸入,然后分離出來  int i=0;  int j=0;  int sign=1;  while(str[i]!='/0')  {   if(str[i]!=',') //輸入時要在半角輸入   {     if(str[i] == '-') //要點:2:有負整數的輸入    {     // i++; //易錯點1     sign=-1;    }    else if(str[i]!='/0') //不用else的話,負號也會減去‘0'    {     a[j]=a[j]*10 + str[i]-'0'; //要點3:輸入的可以是多位數     }   }   i++;   if(str[i]==',' || str[i]=='/0') //這個判斷是在i自加以后   {     a[j]=a[j]*sign; //易錯點2     sign=1; ////易錯點3     j++; //j就是a數組的個數 范圍0到j-1   }    }   sort(a,j);  printf("Max number + Min number = %d",a[0]+a[j-1]);   return 0; } void sort(int a[],int n) //選擇排序 {  int i,j;  int k;  int temp;  for(i=0;i<n-1;i++)  {   k=i;   for(j=i+1;j<n;j++)   {    if(a[k]>a[j])     k=j;   }   if(i!=k)   {    temp = a[k];    a[k] = a[i];    a[i] = temp;   }  }  for(i=0;i<n;i++)   printf("%-5d",a[i]);  puts(""); } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜欧美大片免费观看| 亚洲欧美999| 欧美一级淫片aaaaaaa视频| 成人美女免费网站视频| 成人黄色大片在线免费观看| 亚洲最大av网站| 欧美成年人在线观看| 韩国19禁主播vip福利视频| 欧美性一区二区三区| 亚洲欧美国产日韩天堂区| 久久亚洲精品视频| 97久久精品人人澡人人爽缅北| 91美女片黄在线观看游戏| 国产日韩欧美在线观看| 亚洲一区二区三区四区视频| 欧美剧在线观看| 国产综合在线视频| 成年人精品视频| 欧美一区二区三区免费视| 成人免费网站在线看| 国产精品嫩草影院久久久| 欧美日韩国产精品专区| 亚洲成色777777女色窝| 久久99国产综合精品女同| 久久夜色撩人精品| 少妇高潮 亚洲精品| 欧美激情二区三区| 欧美另类老肥妇| 亚洲色图国产精品| 欧美日韩国产一区二区| 欧美大胆在线视频| 国产成人综合精品在线| 亚洲成av人影院在线观看| 成人福利视频在线观看| 欧美性猛交视频| 色妞一区二区三区| 91国产在线精品| 国产免费成人av| 日韩成人在线免费观看| 国产精品国模在线| 欧美亚洲另类激情另类| 在线播放日韩专区| 国产精品久久久久国产a级| 欧美日韩国产精品一区二区不卡中文| 57pao国产成人免费| 美女啪啪无遮挡免费久久网站| 国产日韩精品综合网站| 欧美日韩成人网| 久久露脸国产精品| 国产精品色午夜在线观看| 日本久久中文字幕| 欧美激情视频免费观看| 亚洲美女视频网站| 欧美洲成人男女午夜视频| 91中文字幕在线观看| 亚洲嫩模很污视频| 91a在线视频| 久久久久国产精品免费网站| 久久久久久国产精品久久| 蜜月aⅴ免费一区二区三区| 欧美成人精品一区二区三区| 欧美日韩中文字幕在线| 欧美大片在线免费观看| 欧美成人精品一区二区| 国产一区二区三区三区在线观看| 97超级碰碰人国产在线观看| 91精品国产综合久久久久久久久| 91性高湖久久久久久久久_久久99| 国产精品毛片a∨一区二区三区|国| 日韩中文字幕精品视频| 97av在线视频免费播放| 另类天堂视频在线观看| 奇米一区二区三区四区久久| 中文字幕日韩av电影| 日韩中文在线中文网在线观看| 亚洲精品自在久久| 国产精品视频网| 亚洲社区在线观看| 91精品国产自产在线观看永久| 精品丝袜一区二区三区| 亚洲视频免费一区| 中文在线资源观看视频网站免费不卡| 国产丝袜高跟一区| 亚洲一区第一页| 欲色天天网综合久久| 欧美激情综合色综合啪啪五月| 在线色欧美三级视频| www.欧美视频| 国产综合在线观看视频| 亚洲精品久久久久| 北条麻妃一区二区三区中文字幕| 成人www视频在线观看| 992tv成人免费视频| 欧美国产日韩一区| 91免费福利视频| 日本久久久久久久| 黑人极品videos精品欧美裸| 久久视频免费观看| 亚洲美腿欧美激情另类| 日韩精品免费在线播放| 在线观看国产精品淫| 国产精品夫妻激情| 亚洲永久在线观看| 久久久久国产一区二区三区| 777国产偷窥盗摄精品视频| 亚洲国产成人久久| 国产亚洲精品久久久久动| 亚洲精品xxxx| 国产精品爱啪在线线免费观看| 精品女厕一区二区三区| 九九热这里只有精品6| 亚洲精品免费网站| 精品久久香蕉国产线看观看gif| 久久久在线观看| 欧美精品性视频| 国产精品夜色7777狼人| 欧美日韩亚洲系列| 17婷婷久久www| 亚洲va男人天堂| 亚洲欧美日韩国产中文专区| 国产视频在线一区二区| 国产日韩精品在线| 日韩最新在线视频| 亚洲午夜国产成人av电影男同| 91精品国产91久久久久久| 久久久久久久久久久免费精品| 亚洲久久久久久久久久| 欧美中文字幕在线视频| 久久久久久久久久久成人| 亚洲自拍偷拍在线| 久久视频在线直播| 欧美高清无遮挡| 国产精品一二三视频| 亚洲无亚洲人成网站77777| 日韩av综合网| 国产欧美精品久久久| 亚洲精品国产精品自产a区红杏吧| 91精品国产自产在线| 久热在线中文字幕色999舞| 久久99精品久久久久久噜噜| 97视频国产在线| 欧美有码在线观看视频| 国产精品视频999| 菠萝蜜影院一区二区免费| 国产在线观看精品一区二区三区| 欧美电影院免费观看| 日韩成人xxxx| 68精品国产免费久久久久久婷婷| 国产成人+综合亚洲+天堂| 最近中文字幕mv在线一区二区三区四区| 亚洲国产欧美精品| 精品久久久91| 亚洲国产欧美自拍| 亚洲欧美中文日韩v在线观看| 亚洲精品久久在线| 日韩在线欧美在线| 久久精彩免费视频| 国产精品视频精品视频| 亚洲国产免费av| 成人av在线亚洲| 日韩精品视频在线播放| 亚洲精品日产aⅴ| 国产精品久久一区主播| 亚洲人成电影在线观看天堂色|