<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      面試題:單詞翻轉(代碼簡潔&效率)

      作者:陳太漢

      單詞翻轉問題是個大公司??嫉囊粋€面試題,在網上看了不少實現方法,感覺都有瑕疵,在下今天又無聊一次,自己寫了兩種實現方式
      一個是簡潔版,一個是效率版
      簡潔版當然是簡潔明了,思路清晰,很容易看懂,但是效率上有待改進,等改進之后發現發現就不是那么好理解了,所以就有了效率版,
      個人還是主張簡潔版,它看起來實在是舒服,讓我很是滿意。
      為什么說簡潔版效率有瑕疵呢?就是因為方法InvertWord的參數是值傳遞,就會不斷的有變量構造和析構,
      效率版就是解決這個問題,改為引用傳遞,但是引用傳遞又產生了另一些問題??匆幌麓a,你會懂的。

      //將一句話翻轉
      // I  am a student--> student a am I
      //先每個單詞翻轉,再整句話翻轉

      簡潔版
      1 #include<iostream>
      2 #include<string>
      3  usingnamespace std;
      4
      5  class InvertWords{
      6 public:
      7 InvertWords(string* wo):words(wo){}
      8 void Invert()
      9 {
      10 int len=words->size();
      11 int beg=-1;
      12 //翻轉整個字符串
      13 InvertWord(beg,len);
      14 //翻轉每個單詞
      15 for(int i=0;i<len;i++)
      16 {
      17 if(words->at(i)=='')
      18 {
      19 InvertWord(beg,i);
      20 beg=i;
      21 }
      22 }
      23 }
      24
      25 private:
      26 void InvertWord(int beg,int end)
      27 {
      28 char tmp;
      29 while(++beg<--end)
      30 {
      31 tmp=words->at(beg);
      32 words->at(beg)=words->at(end);
      33 words->at(end)=tmp;
      34 }
      35 }
      36 string* words;
      37 };
      效率版
      1 #include<iostream>
      2 #include<string>
      3 usingnamespace std;
      4
      5 class InvertWords{
      6 public:
      7 InvertWords(string* wo):words(wo){}
      8 void Invert()
      9 {
      10 int len=words->size();
      11 int beg=-1,k;
      12 //翻轉整個字符串
      13 InvertWord(beg,len);
      14 //由于方法InvertWord的參數為引用類型,beg和len的值都被修改了,所以要還原他們的值
      15 beg=-1;
      16 len=words->size();
      17 //翻轉每個單詞
      18 for(int i=0;i<len;i++)
      19 {
      20 k=i;//k的作用就是保存現場,為了還原i到當前值
      21 if(words->at(i)=='')
      22 {
      23 InvertWord(beg,i);
      24 i=k;//還原i
      25 beg=i;
      26 }
      27 }
      28 }
      29
      30 private:
      31 void InvertWord(int& beg,int& end)
      32 {
      33 char tmp;
      34 while(++beg<--end)
      35 {
      36 tmp=words->at(beg);
      37 words->at(beg)=words->at(end);
      38 words->at(end)=tmp;
      39 }
      40 }
      41 string* words;
      42 };
      測試代碼
      1 int main()
      2 {
      3 string s=" i am a student " ;
      4 InvertWords *rw=new InvertWords(&s);
      5 rw->Invert();
      6 cout<<s<<endl;
      7 int a=0;
      8 cin>>a;
      9 return0;
      10 }
      posted @ 2011-06-09 17:54  古文觀芷  閱讀(2536)  評論(12)    收藏  舉報
      主站蜘蛛池模板: 日本欧美一区二区三区在线播放| 国产一级av在线播放| 国产第一区二区三区精品| 国产性色的免费视频网站| 国产高清无遮挡内容丰富| 西乌| 国产精品99一区二区三区| 久久精品无码免费不卡| 青青草无码免费一二三区| 色综合久久久久综合体桃花网| 久久综合狠狠综合久久| 日本一区二区精品色超碰| 4虎四虎永久在线精品免费| 久久日产一线二线三线| 国产精品亚洲а∨天堂2021| 国产精品呻吟一区二区三区| 亚洲色大成网站WWW永久麻豆| 精品久久人人做爽综合| 国产亚洲另类无码专区| 国产av剧情无码精品色午夜| 日韩人妻少妇一区二区三区| 国产亚洲精品久久777777| 国产精品福利片在线观看| 亚洲欧美日韩愉拍自拍美利坚| 丁香婷婷激情俺也去俺来也| 日韩精品二区三区四区| 粉嫩小泬无遮挡久久久久久| 最新精品国偷自产在线美女足| 宁德市| 二区三区亚洲精品国产| 视频一区视频二区视频三| 欧美s码亚洲码精品m码| 加勒比久久综合网天天| 无码高潮爽到爆的喷水视频| 国产精品午夜福利在线观看| 一本色道久久东京热| 亚洲AV成人片不卡无码| 高清国产一区二区无遮挡| 久久一日本综合色鬼综合色| 日韩老熟女av搜索结果| 人妻蜜臀久久av不卡|