• <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

            統計

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久婷婷色香五月综合激情 | 国产午夜免费高清久久影院| 综合久久国产九一剧情麻豆| 久久综合久久综合久久综合| 一本色道久久88综合日韩精品| 亚洲AV无码成人网站久久精品大| 久久精品国产影库免费看| 亚洲精品成人久久久| 欧美黑人激情性久久| 精品久久久久国产免费| 狠狠狠色丁香婷婷综合久久俺| 99久久精品午夜一区二区| 久久久久久久国产免费看| 精品999久久久久久中文字幕| 久久精品亚洲福利| 久久天天躁狠狠躁夜夜躁2O2O | 99久久香蕉国产线看观香| 天天躁日日躁狠狠久久| 国产成人久久精品麻豆一区 | 国产精品久久久久久福利69堂| 国产色综合久久无码有码| 久久精品国产亚洲综合色| 亚洲午夜无码AV毛片久久| 国产高潮国产高潮久久久| 97精品久久天干天天天按摩 | 亚洲欧美日韩久久精品第一区| 天天久久狠狠色综合| 日韩精品久久久肉伦网站| 久久精品国产99久久丝袜| 久久99国产综合精品| 97久久国产露脸精品国产 | 久久人人爽人人爽人人AV| 亚洲国产天堂久久久久久| 精品九九久久国内精品| 久久精品国产亚洲AV无码偷窥| 一本色道久久综合亚洲精品| 狠狠色丁香婷婷久久综合| 天天影视色香欲综合久久| 久久精品国产亚洲AV久| 欧美大香线蕉线伊人久久| 亚洲综合伊人久久综合|