• <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>
            posts - 183,  comments - 10,  trackbacks - 0
            函數(shù)實(shí)現(xiàn)將網(wǎng)址進(jìn)行如下操作
            www.google.com 轉(zhuǎn)成 com.google.www 及 mail.netease.com 轉(zhuǎn)成 com.netease.mail
            不允許用STL,空間為 O(1)

            http://topic.csdn.net/u/20110425/12/8b5e155c-73d1-40af-84b8-6b6493f638e2.html

            一開(kāi)始把 O(1) 看做時(shí)間復(fù)雜度了,如果是空間復(fù)雜度,直接在原地兩次翻轉(zhuǎn)即可。整體翻轉(zhuǎn),部分翻轉(zhuǎn)順序可以任意。
             1 #include <iostream>
             2 using namespace std;
             3 
             4 void reverse_(char* s, int left, int right)
             5 {
             6     while (left < right)
             7     {
             8         s[left]  ^= s[right];
             9         s[right] ^= s[left];
            10         s[left]  ^= s[right];
            11         ++left;
            12         --right;
            13     }
            14 }
            15 
            16 int findch(char* s, char c, int n)
            17 {
            18     int ret, len = strlen(s);
            19     for (ret = n; ret < len; ++ret)
            20     {
            21         if (s[ret] == c)
            22         {
            23             return ret;
            24         }
            25     }
            26     return -1;
            27 }
            28 
            29 char* reverse(char* s)
            30 {
            31     reverse_(s, 0, strlen(s) - 1);
            32     int left = 0, right = findch(s, '.', left);
            33     while (right != -1)
            34     {
            35         reverse_(s, left, right - 1);
            36         left = right + 1;
            37         right = findch(s, '.', left);
            38     }
            39     reverse_(s, left, strlen(s) - 1);
            40     return s;
            41 }
            42 
            43 int main()
            44 {
            45     char s[100];
            46     while (cin >> s)
            47     {
            48         cout << reverse(s) << endl;
            49     }
            50     return 0;
            51 }


            如果是時(shí)間復(fù)雜度呢?
            這里由個(gè)限制,就是只有兩個(gè) . 符號(hào)時(shí)才成立。使用字符串?dāng)?shù)組存儲(chǔ)字符串,將首尾字符串指針交換即可。
            例如 mail.netease.com
            存在于字符串指針數(shù)組中:
            mail
            .
            netease
            .
            com
            將指向 mail 和 指向 com 的兩個(gè)字符串指針交換即可。
             1 #include <iostream>
             2 using namespace std;
             3 
             4 int main()
             5 {
             6     char* s[100];
             7     int i;
             8     for (i = 0; i < 100++i)
             9     {
            10         s[i] = new char[100];
            11     }
            12     char c;
            13     i = 0;
            14     int j = 0;
            15     // while (cin >> c)
            16     // while (scanf("%c", &c))
            17     while (c = getchar())
            18     {
            19         if (c == '\n')
            20         {
            21             break;
            22         }
            23         if (c != '.')
            24         {
            25             s[i][j] = c;
            26             ++j;
            27             s[i][j] = '\0';
            28         }
            29         else
            30         {
            31             // s[i][j] = '\0';
            32             ++i;
            33             s[i][0= c;
            34             s[i][1= '\0';
            35             j = 0;
            36             ++i;
            37         }
            38     }
            39     char* t = s[0];
            40     s[0= s[i];
            41     s[i] = t;
            42     for (j = 0; j <= i; ++j)
            43     {
            44         cout << s[j];
            45     }
            46     cout << endl;
            47     return 0;
            48 }
            posted on 2011-04-25 23:18 unixfy 閱讀(253) 評(píng)論(0)  編輯 收藏 引用

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


            怡红院日本一道日本久久| 午夜久久久久久禁播电影| 日产精品久久久一区二区| 无码人妻精品一区二区三区久久久 | 国产精品久久久久久久久| 91麻精品国产91久久久久| 91精品国产高清久久久久久国产嫩草 | 久久丫忘忧草产品| 久久91亚洲人成电影网站| 中文字幕无码久久久| 国产精品一久久香蕉国产线看观看 | 亚洲国产欧美国产综合久久| 久久精品国产91久久综合麻豆自制| 久久久WWW免费人成精品| 久久久久久久人妻无码中文字幕爆| 久久久久女教师免费一区| 久久久女人与动物群交毛片| 一级A毛片免费观看久久精品| 久久国产一区二区| 国产成年无码久久久久毛片| 久久婷婷是五月综合色狠狠| 精品无码久久久久国产| 国产69精品久久久久观看软件| 99久久综合狠狠综合久久| 亚洲国产精品久久久久婷婷软件| 97视频久久久| 色播久久人人爽人人爽人人片AV| 91亚洲国产成人久久精品| 香蕉久久av一区二区三区| 中文国产成人精品久久不卡| 伊人久久大香线蕉av不卡| 久久久这里有精品中文字幕| 人人狠狠综合88综合久久| 欧美精品丝袜久久久中文字幕| 亚洲伊人久久大香线蕉苏妲己| 久久亚洲日韩精品一区二区三区| 久久精品亚洲AV久久久无码| 久久精品毛片免费观看| 色欲综合久久躁天天躁蜜桃| 久久久久久毛片免费播放| 国产精品久久国产精品99盘|