免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
華為筆試過了,面試時(shí)又出了一道題 C/C / C語言



  我這樣做的:先定義一個(gè)字符數(shù)組,遍歷字符串將字符與數(shù)組中的字符比較,數(shù)組中沒有時(shí)則將該字符放入其中,另定義一個(gè)整數(shù)數(shù)組,其對(duì)應(yīng)位置放入該字符的個(gè)數(shù);如果字符數(shù)組中存在該字符則直接在整數(shù)數(shù)組的對(duì)應(yīng)位置加1。遍歷完字符串時(shí),其包含的字符和字符個(gè)數(shù)分別放到了兩個(gè)數(shù)組中,到面試人卻說該算法過于復(fù)雜,請(qǐng)各位給予指點(diǎn)。(以前上學(xué)時(shí)遇到過,具體如何做的忘了)
問題點(diǎn)數(shù):40、回復(fù)次數(shù):43
17樓  sd01101230   (一只螞蟻)
 回復(fù)于 2005-03-21 15:40:57  得分 5

#include   "stdafx.h"  
   
  int   _tmain(int   argc,   _TCHAR*   argv[])  
  {  
        char   *   key   =   "class3";  
  char   *base[6]   =   {"class1","class3","class3","class2","class3","class3"};  
  unsigned   int   n   =   sizeof(base)/sizeof(base[0]),i=0;  
  char   **result1;  
  int   index[6]={0};  
   
  //preview   data;  
  printf(   "base   before   _lsearch:\n"   );  
  for(   i=0;   i<n;   ++i   )   printf(   "[   %s   ]",   base[i]   );  
  printf(   "\n\n"   );  
   
  //search   char  
  result1   =   (char   **)search(   &key,   base,&n,sizeof(base[0]),index,   compare   );  
   
  printf(   "\n"   );  
  //printf(   "   %d   \n",sizeof(int)   );  
  //print   index   &   string   +=sizeof(char*)  
  if   (n   !=   sizeof(base)/sizeof(base[0])   +10)  
  {  
  printf(   "string     index\n");  
  for(   i=0;   i<n;i   ++)  
  printf   ("%s       %d   \n",(char   **)result1[i],index[i]   );  
  }  
   
  getchar();  
  return   0;  
  }  
   
  int   compare(const   void   *   arg1,const   void   *   arg2)  
  {  
  return   (strcmp(*(char   **)arg1,*(char   **)arg2));  
  }  
  void   *   search(const   void   *   key,  
  void   *   base,  
  unsigned   int   *   num,  
  unsigned   int   width,  
  void   *   index,  
  int   (_cdecl   *compare)(const   void   *,const   void   *))  
  {  
  const   char   *pbase,*pelement;  
  const   char   *pback,*psearch;  
  int   counter   =   -1,i   =   0;  
  const   int   *indexback;  
  //DATA   ssearch[6];  
  //base   total   adrress  
  try  
  {  
  pbase   =   (const   char*)   base   +   *num   *   width;  
  //save   pre.Address  
  pback   =psearch=pbase   +   *num   *   width;  
   
  indexback   =   (const   int   *)index;//=(int   *)pback   +   *num   *   sizeof(int   *);  
   
  //psearch   -=width;  
  for   (   pelement   =   (const   char   *)base;   pelement   <   pbase;   pelement   +=width,i++)  
  {  
  if   (!compare(key,(void   *)pelement))  
  {  
  //index   =   &counter;  
  counter   ++;  
  memcpy((void   *)psearch,(void   *)pelement,width);  
  memcpy((void   *)indexback,(void   *)(&i),sizeof(int   *));  
  indexback   ++   ;  
  psearch   +=width;  
  //ssearch[counter].pdata   =   (char   *)pback+width*counter;  
  //ssearch[counter].index   =   i;  
  }  
  }  
  if   (counter   !=-1)  
  {  
  //index   =   indexback;  
  *num   =   ++counter;  
  return   ((void   *)   pback);  
  }  
  else  
  return   (base);  
  }  
  catch   (char   *str)  
  {  
  MessageBox(NULL,     str     ,"",MB_OK);  
  }  
  //return   0;  
  }
25樓  yangvxin1   (小楊)
 回復(fù)于 2005-03-21 16:57:49  得分 0

int   Char_Num[128];  
  void   InitialArray()  
  {  
  for(int   i=0;i<128;i++)  
                    Char_Num[i]=0;  
  }  
  void   LoopArray(const   char   *p)  
  {  
  char   pp;  
    for(int   i=0;i<strlen(p);i++)  
  {  
                        pp=*(p+i);  
      Char_Num[pp]++;  
  }  
  }  
  void   print()  
  {      
  int   p;  
  for(int   i=0;i<128;i++)  
  {  
        p=Char_Num[i];  
        if(p!=0)  
        {  
                    printf("The   number   of   %c   is   %d",i,p);  
            printf("\n");  
        }  
  }  
  }  
  void   main(void)  
  {  
          InitialArray();  
  LoopArray("aaabbbcccdddeee;;>/??MM^&%*$#@SDVGfffgggaaaiiiiiiiiitryryasfa");  
  print();  
  }  
  哈哈。無聊。覺得。  
 
34樓  qifa   ()
 回復(fù)于 2005-03-21 21:35:53  得分 0

Iamanders(日上三竿)    
  先排序,然后計(jì)數(shù),  
   
  耗時(shí)比較長(zhǎng),唯一的就是思路清晰  
   
  這樣行不行?。? 
  ///////////////////////////////////////////////////////  
   
  #include   <iostream.h>  
  #include   <string.h>  
   
  const   BUFFER   =   256;  
  #define   SWAP(a,b)   a^=b^=a^=b;  
  void   main()  
  {  
  char   buf[BUFFER];  
   
  cout<<"請(qǐng)輸入字符串[不超過256]:";  
  cin>>buf;  
   
  int   Length,i,j;  
   
  Length   =   strlen(buf);  
  cout<<"總字符:"<<Length<<endl;  
  //排序  
  for(i=0;   i<Length;   i++)  
  for(j=i;   j<Length;   j++)  
  if   (buf[i]   >   buf[j])   SWAP(buf[i],buf[j]);  
  cout<<endl<<buf<<endl<<endl;  
  //統(tǒng)計(jì)輸出  
  j=1;  
  for(i=0;   i<Length;   i++)  
  {  
  if   (buf[i]   !=   buf[i+1])  
  {  
  cout<<"字符:   \‘"<<buf[i]<<"\‘   出現(xiàn)"<<j<<"次"<<endl;  
  j   =   1;  
  }  
  else  
  {  
  j++;  
  }  
  }  
   
  }  
 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
還沒搞懂C語言指針?這里有最詳細(xì)的純干貨講解(附代碼)
C語言面試題
詳解C語言二級(jí)指針三種內(nèi)存模型
第九章 C99可變長(zhǎng)數(shù)組VLA詳解
C語言使用stdlib.h庫函數(shù)的二分查找和快速排序的實(shí)現(xiàn)代碼
淺析C/C++中sort函數(shù)的用法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服