• <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,明確算法后,居然不會用一些數據結構表示出來。
            3,對于無限循環,可以用兩個結構迭代下去。  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 <<"輸入碼字的個數" << 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內!"<<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內" <<  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 閱讀(243) 評論(0)  編輯 收藏 引用 所屬分類: 數學

            導航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統計

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            97久久天天综合色天天综合色hd| 久久精品国产精品亚洲艾草网美妙| 久久精品国产亚洲AV高清热 | 欧美亚洲国产精品久久久久| 久久精品国产色蜜蜜麻豆| 91久久精一区二区三区大全| 亚洲国产精品久久久久婷婷软件| 久久男人中文字幕资源站| 综合网日日天干夜夜久久| 亚洲AⅤ优女AV综合久久久| 香蕉久久一区二区不卡无毒影院| 国产成人综合久久综合| 久久精品成人免费国产片小草 | 囯产极品美女高潮无套久久久| 久久婷婷五月综合色奶水99啪| 亚洲AV无码一区东京热久久| 久久香综合精品久久伊人| 国产精品久久久久久影院| 久久综合鬼色88久久精品综合自在自线噜噜 | 亚洲?V乱码久久精品蜜桃| 无码精品久久久久久人妻中字| 国产午夜免费高清久久影院| 久久婷婷色综合一区二区| 污污内射久久一区二区欧美日韩 | 成人综合久久精品色婷婷| 99久久免费国产精精品| 久久精品国产亚洲AV不卡| 日韩十八禁一区二区久久| 国产精品成人精品久久久| 精品无码久久久久久久动漫| 国产免费久久精品丫丫| 久久久久99精品成人片试看 | 久久综合久久综合久久| 久久夜色tv网站| 久久人人爽人人爽人人片AV不| 久久久久久久精品成人热色戒| 久久久九九有精品国产| 久久久久亚洲AV无码麻豆| 国产成人久久精品激情| 久久无码人妻一区二区三区 | 久久丫忘忧草产品|