• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            no_rain

            唯一可譯碼

            寫這段代碼時遇到了幾個困難:
            1,對STL不熟悉,或者可以說一知半解吧。
            2,明確算法后,居然不會用一些數(shù)據(jù)結(jié)構(gòu)表示出來。
            3,對于無限循環(huán),可以用兩個結(jié)構(gòu)迭代下去。  1 #include<iostream>
              2 #include<string>
              3 #include<set>
              4 #include<cstdlib>
              5 using namespace std;
              6 bool testFront(string a, string b){
              7   for(int i = 0 ; i < b.length(); i++)
              8     if(b[i] != a[i])
              9       return false;
             10   return true;
             11 }
             12 string getLast(string a,string b){
             13   string t(a.length() - b.length(),0);
             14   for(int i = 0 ; i <t.length() ; i++)
             15     t[i] = a[i + b.length()];
             16   return t;
             17 }
             18 
             19 int main(){
             20   int count,cnt;
             21   set<string> container;
             22   string temp;
             23   cout << "輸入碼字集的大小" << endl;
             24   cin >> count;
             25   cout <<"輸入碼字的個數(shù)" << endl;
             26   cin >> cnt;
             27   cout << "逐個輸入碼字" << endl;
             28   for(int i = 1; i <= cnt; i++){
             29     cin >> temp;
             30     if(container.find(temp) != container.end()){
             31       cout << "奇異碼!" << endl;
             32       exit(1);
             33     }
             34     else container.insert(temp);
             35   }
             36   cout << "非奇異碼!" << endl;
             37   //craft
             38   double res = 0;
             39   set<string> f;
             40   set<string> ::iterator i,j;
             41   for( i = container.begin();
             42       i != container.end();i++){
             43     double temp = 1;
             44     for(int j = 1; j <= (*i).length(); j++)
             45       temp *= count;
             46     res += (1/temp);
             47   }
             48   if(res > 1){
             49     cout << "不滿足craft不等式" << endl;
             50     exit(1);
             51   }
             52   else cout <<  "滿足craft不等式" << endl;
             53   int flag = 1;
             54   for( i = container.begin();
             55        i != container.end();i++){
             56     j= i;
             57     j++;
             58     for( ;j != container.end();j++){
             59       string a,b;
             60       if((*i).length() > (*j).length()){
             61     a = *i;
             62     b = *j;
             63       }
             64       else {
             65     a = *j;
             66     b = *i;
             67       }
             68       if(testFront(a,b)){
             69     cout << b <<"" << a  << "的前綴" << endl;
             70     flag = 0;
             71     string t = getLast(a,b);
             72     if(!t.empty()){
             73       f.insert(t);
             74       if(container.find(t) != container.end()){
             75         cout << " 不是唯一可譯碼!" ;
             76         cout << t << "在C內(nèi)!"<<endl;
             77         exit(1);
             78       }
             79     }
             80       }
             81     }
             82   }
             83   if(!flag)
             84     cout << "不是即時碼!" <<endl;      
             85   else  {
             86     cout << "是即時碼!" << endl;
             87     exit(1);
             88   }
             89   set<string> ft1(f),ft2;
             90   int tc = 1;
             91   while(1){
             92     cout << tc << ':';
             93     tc ++;
             94     int flag = 0;
             95     for(i = ft1.begin(); i != ft1.end();i++){
             96       for(j = container.begin(); 
             97       j != container.end();j++){
             98     string a,b;
             99     if((*i).length() > (*j).length()){
            100       a = *i;
            101       b = *j;
            102     }
            103     else {
            104       a = *j;
            105       b = *i;
            106     }
            107     if(testFront(a,b)){
            108       string t = getLast(a,b);
            109       if(container.find(t) != container.end()){
            110         cout << "不是唯一可譯碼!"  <<<< "在C內(nèi)" <<  endl;
            111         exit(1);
            112       }
            113       if(f.find(t) == f.end())
            114         ft2.insert(t);
            115     }
            116       }
            117     }
            118     if(ft2.empty()){
            119       cout << "是唯一可譯碼"  << endl;
            120       exit(1);
            121     }     
            122     for(i = ft1.begin();i != ft1.end();i++){
            123       f.insert(*i);
            124       cout << *<< ' ';
            125     }    
            126     ft1.clear();
            127     ft1 = ft2;
            128     ft2.clear();
            129   }
            130 }
            131 

            posted on 2011-11-29 13:47 is-programmer 閱讀(250) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)學(xué)


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            導(dǎo)航

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV日韩精品久久久久久久| 2021国内精品久久久久久影院| 亚洲AV无一区二区三区久久| 日本人妻丰满熟妇久久久久久| 99久久中文字幕| 久久亚洲国产精品123区| 欧洲成人午夜精品无码区久久| 999久久久免费国产精品播放| 一个色综合久久| 99久久国产综合精品网成人影院 | 亚洲精品tv久久久久久久久| 久久天堂电影网| 久久香综合精品久久伊人| 久久不射电影网| 国产精品久久久久久久人人看| 18岁日韩内射颜射午夜久久成人| 中文字幕人妻色偷偷久久| 久久久久亚洲AV成人网人人网站 | 久久久午夜精品福利内容| 亚洲国产精品热久久| 久久久久人妻一区精品色| 久久久久99这里有精品10| 狠狠精品久久久无码中文字幕 | 7777久久久国产精品消防器材| 久久久WWW成人| 精品久久国产一区二区三区香蕉| 狠狠干狠狠久久| 国产精品福利一区二区久久| 久久久久亚洲av无码专区喷水| 国产精品久久婷婷六月丁香| 中文字幕亚洲综合久久菠萝蜜| 久久久WWW免费人成精品| 狠狠色丁香婷婷综合久久来来去 | 国产高潮国产高潮久久久| 亚洲午夜久久久久妓女影院| 久久国产欧美日韩精品| 无码专区久久综合久中文字幕 | 久久国产精品99精品国产| 国产精品岛国久久久久| 国产精品青草久久久久婷婷 | 开心久久婷婷综合中文字幕|