• <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 閱讀(250) 評論(0)  編輯 收藏 引用 所屬分類: 數學

            導航

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

            統計

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国内一区二区三区| 久久精品成人一区二区三区| 日韩人妻无码一区二区三区久久99| 亚洲欧洲中文日韩久久AV乱码| 亚洲第一极品精品无码久久| 9999国产精品欧美久久久久久 | 午夜天堂精品久久久久| 国産精品久久久久久久| 亚洲午夜久久久久久久久电影网| 久久99精品国产99久久| 久久久久精品国产亚洲AV无码| 9999国产精品欧美久久久久久| 亚洲午夜无码久久久久| 亚洲国产小视频精品久久久三级 | 久久久久国产一级毛片高清版| 香蕉久久永久视频| 国产精品内射久久久久欢欢| 精品人妻久久久久久888| 狠狠色丁香久久婷婷综合蜜芽五月| 热99re久久国超精品首页| 久久精品国产网红主播| 伊人久久精品无码av一区| 18禁黄久久久AAA片| 午夜精品久久久久久久无码| 国产精品久久久久一区二区三区 | 色综合久久综合中文综合网| 久久伊人五月丁香狠狠色| 国产精品久久久久久五月尺| 久久精品视频91| 精品国产婷婷久久久| 国产精品午夜久久| 日韩电影久久久被窝网| 亚洲欧美国产日韩综合久久| 麻豆久久久9性大片| 久久人人爽人人爽人人片AV高清| 伊人久久国产免费观看视频| 久久久久久久波多野结衣高潮 | 99久久精品久久久久久清纯| 品成人欧美大片久久国产欧美 | 天天爽天天狠久久久综合麻豆| 久久不见久久见免费视频7|