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

            /*1.百度語(yǔ)言翻譯機(jī)
            百度的工程師們是非常注重效率的,在長(zhǎng)期的開(kāi)發(fā)與測(cè)試過(guò)程中,他們逐漸創(chuàng)造了一套獨(dú)特的縮略語(yǔ)。他們?cè)谄綍r(shí)的交談、會(huì)議,甚至在各種技術(shù)文檔中都會(huì)大量運(yùn)用。

            為了讓新員工可以更快地適應(yīng)百度的文化,更好地閱讀公司的技術(shù)文檔,人力資源部決定開(kāi)發(fā)一套專用的翻譯系統(tǒng),把相關(guān)文檔中的縮略語(yǔ)和專有名詞翻譯成日常語(yǔ)言。

            輸入要求:
            輸入數(shù)據(jù)包含三部分:
            1. 第一行包含一個(gè)整數(shù)N(N<=10000),表示總共有多少個(gè)縮略語(yǔ)的詞條;
            2. 緊接著有N行的輸入,每行包含兩個(gè)字符串,以空格隔開(kāi)。第一個(gè)字符串為縮略語(yǔ)(僅包含大寫(xiě)英文字符,長(zhǎng)度不超過(guò)10字節(jié)),第二個(gè)字符串為日常語(yǔ)言(不包含空格,長(zhǎng)度不超過(guò)255字節(jié));
            3. 從第N+2開(kāi)始到輸入結(jié)束為包含縮略語(yǔ)的相關(guān)文檔(總長(zhǎng)度不超過(guò)1000000個(gè)字節(jié))。例:
            6
            PS 門(mén)戶搜索部
            NLP 自然語(yǔ)言處理
            PM 產(chǎn)品市場(chǎng)部
            HR 人力資源部
            PMD 產(chǎn)品推廣部
            MD 市場(chǎng)發(fā)展部
            百度的部門(mén)包括PS,PM,HR,PMD,MD等等,其中PS還包括NLP小組。


            輸出要求:
            輸出將縮略語(yǔ)轉(zhuǎn)換成日常語(yǔ)言后的文檔。(將縮略語(yǔ)轉(zhuǎn)換成日常語(yǔ)言,其他字符保留原樣)。例:
            百度的部門(mén)包括門(mén)戶搜索部,產(chǎn)品市場(chǎng)部,人力資源部,產(chǎn)品推廣部,市場(chǎng)發(fā)展部等等,其中門(mén)戶搜索部還包括自然語(yǔ)言處理小組。


            評(píng)分規(guī)則:
            1.程序?qū)⑦\(yùn)行在一臺(tái)Linux機(jī)器上(內(nèi)存使用不作嚴(yán)格限制),在每一測(cè)試用例上運(yùn)行不能超過(guò)10秒,否則該用例不得分;
            2.要求程序能按照輸入樣例的格式讀取數(shù)據(jù)文件,按照輸出樣例的格式將運(yùn)行結(jié)果輸出到標(biāo)準(zhǔn)輸出上。如果不能正確讀入數(shù)據(jù)和輸出數(shù)據(jù),該題將不得分;
            3.該題目共有4個(gè)測(cè)試用例,每個(gè)測(cè)試用例為一個(gè)輸入文件。各測(cè)試用例占該題目分?jǐn)?shù)的比例分別為25%,25%,25%,25%;
            4.該題目20分。


            注意事項(xiàng):
            1.輸入數(shù)據(jù)是中英文混合的,中文采用GBK編碼。
            GBK:是又一個(gè)漢字編碼標(biāo)準(zhǔn),全稱《漢字內(nèi)碼擴(kuò)展規(guī)范》。采用雙字節(jié)表示,總體編碼范圍為 8140-FEFE,首字節(jié)在 81-FE 之間,尾字節(jié)在 40-FE 之間,排除xx7F。總計(jì) 23940 個(gè)碼位,共收入 21886 個(gè)漢字和圖形符號(hào),其中漢字(包括部首和構(gòu)件)21003 個(gè),圖形符號(hào) 883 個(gè)。

            2.為保證答案的唯一性,縮略語(yǔ)的轉(zhuǎn)換采用正向最大匹配(從左到右為正方向)原則。請(qǐng)注意樣例中PMD的翻譯。

            */

            /*
            ? Name:
            ? Copyright:
            ? Author:
            ? Date: 27-05-06 15:37
            ? Description:
            */
            /*
            算法介紹:
            1。創(chuàng)建一個(gè)language結(jié)構(gòu),它包含兩個(gè)字符串,分別用來(lái)存儲(chǔ)大寫(xiě)字母串和對(duì)應(yīng)的中文。
            2。讀入數(shù)據(jù)N,大寫(xiě)字母串和對(duì)應(yīng)的中文(存儲(chǔ)到*lan),包含縮略語(yǔ)的相關(guān)文檔(存儲(chǔ)到textBefore[lenText])。
            3。遍歷textBefore[lenText],將轉(zhuǎn)換成日常語(yǔ)言后的文檔存儲(chǔ)到textAfter[lenText],轉(zhuǎn)換的格式為:
            ????? 如果是漢字則不轉(zhuǎn)換,直接寫(xiě)入textAfter[lenText];
            ????? 如果為大寫(xiě)字母,則將其提取,存儲(chǔ)到eng[lenEng],遍歷lan,尋找與eng[lenEng]匹配的English[lenEng],將對(duì)應(yīng)的Chinese[lenChi]存儲(chǔ)到chi[lenChi];然后把chi[lenChi]接到textAfter[lenText]。
            4。輸出textAfter[lenText]。
            */
            #include <iostream>
            #include<string>
            #include<fstream>
            #include <time.h>

            using namespace std;

            const int lenEng = 11;
            const int lenChi = 256;
            const long lenText = 100001;

            typedef struct{
            ????? char English[lenEng];
            ????? char Chinese[lenChi];
            } language;

            language * Readata(const char *filename, char text[], language *lan, int & N);
            bool IsUpper(char ch);
            void PiPei(const language *lan, int len, const char *eng, char *chi);
            void Transducer(const language *lan, int len, const char *textBefore);

            int main()
            {
            ?time_t startTime;
            ?time_t endTime;
            ?time(&startTime);

            ????? language *lan;
            ????? char textBefore[lenText];
            ????? int N = 0;
            ?lan = Readata("in1.txt", textBefore, lan, N);

            ????? for (int i=0; i<N; i++)
            ??????????? cout << lan[i].English << ' ' << lan[i].Chinese << endl;
            ????? cout << textBefore << endl;

            ????? Transducer(lan, N, textBefore);

            ?time(&endTime);
            //?cout << difftime(endTime, startTime) << endl;

            ?getchar();
            ?return 0;
            }

            void Transducer(const language *lan, int len, const char *textBefore)
            {
            ????? char textAfter[lenText];
            ????? int topA = 0;
            ????? int topB = 0;
            ?????
            ????? while(textBefore[topB])
            ????? {
            ??????????? while (textBefore[topB] && !IsUpper(textBefore[topB]))
            ??????????? {
            ????????????????? textAfter[topA++] = textBefore[topB++];
            ??????????? }
            ??????????? textAfter[topA++] = '\0';

            ??????????? char eng[lenEng];
            ??????????? int topE = 0;
            ??????????? while (textBefore[topB] && IsUpper(textBefore[topB]))
            ??????????? {
            ????????????????? eng[topE++] = textBefore[topB++];
            ??????????? }
            ??????????? eng[topE++] = '\0';
            ??????????? if (textBefore[topB])
            ??????????? {
            ????????????????? char chi[lenChi];
            ????????????????? PiPei(lan, len, eng, chi);

            ????????????????? strcat(textAfter, chi);
            ????????????????? while(textAfter[topA])
            ??????????????????????? topA++;
            ??????????? }
            ????? }
            ????? cout << textAfter;
            }

            void PiPei(const language *lan, int len, const char *eng, char *chi)
            {
            ????? for (int i=0; i<len; i++)
            ????? {
            ??????????? if (strcmp(eng, lan[i].English) == 0)
            ??????????? {
            ???????????????? strcpy(chi, lan[i].Chinese);
            ???????????????? return ;
            ??????????? }
            ????? }
            }
            bool IsUpper(char ch)
            {
            ????? if (ch >= 'A' && ch <= 'Z')
            ??????????? return true;
            ????? return false;
            }

            language * Readata(const char *filename, char text[], language *lan, int & N)
            {
            ????? fstream in(filename);
            ????? if (!in)
            ??????????? return 0;?? //結(jié)束程序執(zhí)行

            ????? in >> N;

            ????? lan = new language[N];
            ????? int top = 0;
            ????? int n = 0;
            ????? while (!in.eof() && n < N)
            ????? {
            ??????????? in >> lan[top].English;
            ??????????? in >> lan[top].Chinese;
            ??????????? top++;
            ??????????? n++;
            ????? }

            ????? char buf[lenText];
            ????? while (!in.eof())
            ????? {
            ??????????? in >> buf;
            ??????????? strcat(text, buf);
            ????? }

            ????? in.close(); //關(guān)閉文件

            ????? return lan;
            }

            Posted on 2006-05-30 13:52 夢(mèng)想飛揚(yáng) 閱讀(975) 評(píng)論(4)  編輯 收藏 引用

            Feedback

            # re: 我解百度之星題目之" 百度語(yǔ)言翻譯機(jī) "  回復(fù)  更多評(píng)論   

            2006-05-30 20:54 by welkin
            可以用std::map的嗎?那樣查找起來(lái)應(yīng)該快一些。
            我的思路:
            構(gòu)造一個(gè)std::map<string, string> mapShort2Text, 從第二行開(kāi)始讀取N行數(shù)據(jù),將讀到的放入mapShort2Text,然后一次性讀取N+2行后的數(shù)據(jù)放入string strDocument,再利用string::find_first_of和fird_first_not_of可以快速找到英文字符串,在mapShort2Text查找是否有匹配的單詞,如果匹配就取出對(duì)應(yīng)的text。不用在strDocument的基礎(chǔ)上替換,因?yàn)槟菢右鰞?nèi)存拷貝,會(huì)變得慢。題目只是要求輸出結(jié)果,所以將結(jié)果分開(kāi)來(lái)輸出就行了。

            我的初步思路,希望可以得到大家更好的見(jiàn)解。

            # re: 我解百度之星題目之" 百度語(yǔ)言翻譯機(jī) "  回復(fù)  更多評(píng)論   

            2006-05-31 17:04 by liaoqs
            你的五篇百度試題我都做了轉(zhuǎn)載,謝謝!

            # re: 我解百度之星題目之" 百度語(yǔ)言翻譯機(jī) "  回復(fù)  更多評(píng)論   

            2006-06-06 02:12 by FVDF
            [url=http://www.gltqzj.iambm.com]起重機(jī)[/url][url=http://www.ntzyj.iambm.com]卷?yè)P(yáng)機(jī)[/url][url=http://www.ntzyj.iambm.com]沖孔機(jī)[/url][url=http://www.ntkqc.iambm.com]空氣錘[/url]
            [url=http://www.shineblog.com/user4/ntdlq/archives/2006/410431.shtml]大力鉗[/url][url=http://www.shineblog.com/user4/ntmc/archives/2006/411137.shtml]平面磨床[/url]
            [url=http://www.ntdbj.iambm.com]打包機(jī)[/url][url=http://www.ntdbj.iambm.com]金屬打包機(jī)[/url][url=http://www.shineblog.com/user4/ntmc/archives/2006/411137.shtml]磨床[/url]
            [url=http://www.shineblog.com/user4/ntssj/archives/2006/412187.shtml]送絲機(jī)[/url]
            [url=http://www.shineblog.com/user4/ntzkb/archives/2006/412612.shtml]真空泵[/url]
            [url=http://www.jhxdjx.com/jsj/product.htm]腳手架[/url][url=http://www.jhxdjx.com/blg/product.htm]玻璃鋼格柵[/url]


            # re: 我解百度之星題目之" 百度語(yǔ)言翻譯機(jī) "  回復(fù)  更多評(píng)論   

            2006-06-06 02:13 by FVDF
            [url=http://www.shineblog.com/user4/mhdbj/archives/2006/397430.shtml]垃圾打包機(jī)[/url][url=http://www.shineblog.com/user4/xtwjx/archives/2006/397705.shtml]剪板機(jī)[/url]

            [url=http://www.shineblog.com/user4/lxfj/archives/2006/405763.shtml]離心風(fēng)機(jī)[/url][url=http://www.shineblog.com/user4/ntmmj/archives/2006/406765.shtml]磨毛機(jī)[/url]
            [url=http://www.gltqzj.iambm.com]起重機(jī)[/url][url=http://www.ntzyj.iambm.com]卷?yè)P(yáng)機(jī)[/url][url=http://www.ntzyj.iambm.com]沖孔機(jī)[/url][url=http://www.ntkqc.iambm.com]空氣錘[/url]

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


            亚洲AV无码久久精品色欲| 久久综合成人网| 久久久久久久久久久| 久久亚洲精品无码播放| 夜夜亚洲天天久久| 93精91精品国产综合久久香蕉| 久久精品无码专区免费东京热 | 99久久精品费精品国产一区二区| 久久国产免费直播| 亚洲精品乱码久久久久久久久久久久| 2021国内久久精品| 无码人妻精品一区二区三区久久 | 久久夜色精品国产亚洲| 欧美色综合久久久久久| 久久青青色综合| 久久久精品人妻一区二区三区蜜桃 | 新狼窝色AV性久久久久久| 伊人久久大香线蕉av不卡 | 久久久久久久久久久| 国产A三级久久精品| 国产成人久久AV免费| 国内精品久久久久久久影视麻豆| 久久综合伊人77777麻豆| 久久婷婷五月综合成人D啪| 久久超碰97人人做人人爱| 久久精品国产清自在天天线| 国产精品久久久久蜜芽| 欧美精品久久久久久久自慰| 91久久香蕉国产熟女线看| 亚洲色欲久久久久综合网| 久久精品国产亚洲AV嫖农村妇女| 四虎国产精品免费久久久| 国产69精品久久久久观看软件| 久久精品国产网红主播| 久久久久久av无码免费看大片| 无码人妻久久一区二区三区免费丨| 97精品伊人久久大香线蕉app| 亚洲国产高清精品线久久| 久久久久免费精品国产| 亚洲精品美女久久久久99| 欧美无乱码久久久免费午夜一区二区三区中文字幕 |