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


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


            導(dǎo)航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久午夜羞羞影院免费观看| 人妻无码久久精品| 国产亚洲精午夜久久久久久| 无码乱码观看精品久久| 99精品国产在热久久无毒不卡| 欧美久久精品一级c片片| 色99久久久久高潮综合影院 | 思思久久99热免费精品6| 国产aⅴ激情无码久久| 97精品伊人久久大香线蕉app| 国内精品久久久久伊人av| 狠狠干狠狠久久| 久久99久久无码毛片一区二区| 品成人欧美大片久久国产欧美...| 久久中文精品无码中文字幕| 久久久婷婷五月亚洲97号色| 久久婷婷人人澡人人| 久久99国产精品尤物| 四虎影视久久久免费| 狠狠久久亚洲欧美专区 | 18岁日韩内射颜射午夜久久成人| 人人妻久久人人澡人人爽人人精品| 72种姿势欧美久久久久大黄蕉| 亚洲国产精品嫩草影院久久 | 天天爽天天狠久久久综合麻豆| 久久精品国产一区二区三区| 少妇高潮惨叫久久久久久| 日本精品一区二区久久久| 九九99精品久久久久久| 中文国产成人精品久久不卡| 综合久久精品色| 狠狠色综合网站久久久久久久 | 亚洲欧洲久久av| 国产一区二区精品久久岳| 99久久免费国产特黄| 国产成人精品综合久久久| 午夜精品久久久久久| 国产高潮国产高潮久久久91 | 欧美久久一级内射wwwwww.| 久久综合狠狠色综合伊人| 人妻无码久久一区二区三区免费|