青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

題目:
題目+我的解答打包下載
http://m.shnenglu.com/Files/zuroc/06_baidustar_translator.zip
百度語言翻譯機

百度的工程師們是非常注重效率的,在長期的開發(fā)與測試過程中,他們逐漸創(chuàng)造了一套獨特的縮略語。他們在平時的交談、會議,甚至在各種技術文檔中都會大量運用。

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

輸入要求:
輸入數(shù)據(jù)包含三部分:
1. 第一行包含一個整數(shù)N(N<=10000),表示總共有多少個縮略語的詞條;

2. 緊接著有N行的輸入,每行包含兩個字符串,以空格隔開。第一個字符串為縮略語(僅包含大寫英文字符,長度不超過10字節(jié)),第二個字符串為日常語言(不包含空格,長度不超過255字節(jié));

3. 從第N+2開始到輸入結(jié)束為包含縮略語的相關文檔(總長度不超過1000000個字節(jié))。例:

6
PS 門戶搜索部
NLP 自然語言處理
PM 產(chǎn)品市場部
HR 人力資源部
PMD 產(chǎn)品推廣部
MD 市場發(fā)展部
百度的部門包括PS,PM,HR,PMD,MD等等,其中PS還包括NLP小組。
樣例:in.txt

輸出要求:
輸出將縮略語轉(zhuǎn)換成日常語言后的文檔。(將縮略語轉(zhuǎn)換成日常語言,其他字符保留原樣)。例:

百度的部門包括門戶搜索部,產(chǎn)品市場部,人力資源部,產(chǎn)品推廣部,市場發(fā)展部等等,其中門戶搜索部還包括自然語言處理小組。
樣例:out.txt

評分規(guī)則:

1.程序?qū)⑦\行在一臺Linux機器上(內(nèi)存使用不作嚴格限制),在每一測試用例上運行不能超過10秒,否則該用例不得分;

2.要求程序能按照輸入樣例的格式讀取數(shù)據(jù)文件,按照輸出樣例的格式將運行結(jié)果輸出到標準輸出上。如果不能正確讀入數(shù)據(jù)和輸出數(shù)據(jù),該題將不得分;

3.該題目共有4個測試用例,每個測試用例為一個輸入文件。各測試用例占該題目分數(shù)的比例分別為25%,25%,25%,25%;

4.該題目20分。


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

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

代碼:
/*
我的思路

1.縮略語
vector< string >    //用來保存縮略語
按string的length排序,來滿足"縮略語的轉(zhuǎn)換采用正向最大匹配".

2.一次性的進行文本替換,以防止替換內(nèi)容再次被替換
map<pair<int,int>,string>        //位置范圍-縮略語
vector<pair<int,int>>    //保存位置范圍
map<string,string>    //縮略語
*/

#include <fstream>
#include <sstream>
#include <iostream>

#include <vector>
#include <map>
#include <list>

#include <string>

#include <algorithm>
#include <functional>

using namespace std;

#define BEG_END(c)        (c.begin()),(c.end())

typedef string::size_type str_size;

/** 轉(zhuǎn)換string為指定的類型 */
template<typename Target, typename Source>
Target lexical_cast(const Source& arg)
{
    Target result;
    istringstream(arg)>>result;
    return result;
}

vector<str_size> find_all(const string& source , const string& aim)
{

    vector<str_size>    poses;

    str_size pos=0;
    str_size aim_len=aim.size();

    while ( (pos=source.find(aim, pos)) != string::npos)
    {
            poses.push_back(pos);
            pos += aim_len;
    }

    return poses;
}

bool is_long(const string& a , const string& b)
{
    return a.length()>b.length();
}

bool is_first_small(const pair<str_size,str_size>& a , const  pair<str_size,str_size>& b)
{
    return a.first<b.first;
}



template<class T,class I>
bool not_in_scope(I begin,const I& end,const T& aim)
{
    for (;begin!=end;++begin)
    {
        if (
            (aim>=(begin->first) ) && (aim<= (begin->first+begin->second) )
        )return false;
    }
    return true;
}

int main()
{

    string infile_name="in.txt" , outfile_name="out.txt";

    ofstream outfile(outfile_name.c_str());
    //ostream& outfile = cout;

    ifstream infile(infile_name.c_str());
    if (!infile)
    {
        cerr<<"Error : can't open input file "<<infile_name<<" .\n";
        return -1;
    }

    string line;
    vector<string> abbr_dict;
    map<string,string>    abbr_word;

    getline(infile,line);
    for (int i=lexical_cast<int>(line);i!=0;--i)
    {
        getline(infile,line);
        string abbr,word;
        istringstream(line)>>abbr>>word;
        abbr_dict.push_back(abbr);
        abbr_word[abbr]=word;
        //cout<<abbr<<' '<<word<<'\n';
    }

    sort(BEG_END(abbr_dict),is_long);

    while (getline(infile,line))
    {
        typedef vector<pair<str_size,str_size> > replace_scope;

        replace_scope    to_replace_scope;
        map<pair<str_size,str_size>,string>    to_replace;

        for (
            vector<string>::iterator i=abbr_dict.begin(),end=abbr_dict.end();
            i!=end;
            ++i
        )
        {
            vector<str_size>    poses=find_all(line,*i);
            str_size aim_len=i->size();
            for (vector<str_size>::iterator j=poses.begin(),end=poses.end();j
                    !=end;++j)
            {
                pair<str_size,str_size> scope=make_pair(*j,aim_len);
                if (not_in_scope(BEG_END(to_replace_scope),*j))
                {
                    to_replace_scope.push_back(scope);
                    to_replace[scope]=*i;
                }
            }
        }

        sort(BEG_END(to_replace_scope),is_first_small);

        str_size offset=0;

        for (
            replace_scope::iterator i=to_replace_scope.begin(),end=to_replace_scope.end();
            i!=end;
            ++i
        )
        {
            str_size len=i->second ;
            string word=abbr_word[to_replace[*i]];
            line.replace(i->first+offset,len ,word);
            offset+=word.size()-len;
        }


        outfile<<line<<'\n';
    }

    return 0;
}
posted on 2007-05-13 21:25 張沈鵬 閱讀(1041) 評論(0)  編輯 收藏 引用 所屬分類: C++
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲影院免费观看| 国产精品国产精品| 亚洲午夜精品一区二区| 日韩小视频在线观看| 日韩天堂在线视频| 99re6这里只有精品| 一本到高清视频免费精品| 亚洲欧洲精品一区二区精品久久久| 亚洲国产合集| 一本色道久久综合| 欧美亚洲三级| 欧美国产日韩精品免费观看| 国产精品国产三级国产aⅴ入口| 国产日本欧美一区二区| 亚洲国产综合在线看不卡| 艳妇臀荡乳欲伦亚洲一区| 羞羞答答国产精品www一本| 久久久久9999亚洲精品| 亚洲欧洲日韩综合二区| 午夜在线观看欧美| 欧美国产91| 国产三级欧美三级| 日韩视频免费在线观看| 久久精品99国产精品日本| 亚洲激情在线播放| 欧美一区二区三区久久精品 | 午夜一区二区三区不卡视频| 免费在线看一区| 亚洲一级电影| 欧美精品日韩一本| 一区二区三区自拍| 欧美资源在线| 亚洲综合99| 国产精品久久久久久久久久久久| 亚洲日本理论电影| 国产精品有限公司| 日韩亚洲欧美综合| 亚洲女爱视频在线| 欧美久久一级| 在线免费日韩片| 欧美自拍偷拍午夜视频| 一区二区三区四区国产精品| 美日韩免费视频| 激情综合中文娱乐网| 午夜日韩电影| 亚洲性视频网址| 欧美日韩一区二区三区在线视频| 亚洲欧洲视频在线| 欧美承认网站| 久久综合激情| 亚洲电影在线免费观看| 久久一区二区三区av| 久久国产一区| 亚洲第一区中文99精品| 欧美国产第二页| 欧美大片在线观看一区| 亚洲伦理网站| 99亚洲一区二区| 欧美日韩在线播放| 亚洲一区免费视频| 亚洲视频在线一区| 国产女同一区二区| 久久久国产精品一区二区三区| 午夜国产不卡在线观看视频| 国产精品夜夜嗨| 久久黄色网页| 久久在线观看视频| 亚洲九九精品| 99精品国产在热久久| 国产精品国产三级国产专区53 | 另类专区欧美制服同性| 在线不卡欧美| 日韩亚洲欧美高清| 国产精品久久久久av免费| 欧美一区二区三区免费观看视频| 午夜精品久久久久久99热| 国产一区二区三区四区五区美女 | 麻豆精品一区二区av白丝在线| 亚洲国产精品女人久久久| 亚洲精品乱码久久久久久蜜桃91 | 国产区精品视频| 久久人人97超碰人人澡爱香蕉| 久久美女艺术照精彩视频福利播放| 亚洲国产午夜| 蜜桃久久精品一区二区| 亚洲综合电影一区二区三区| 亚洲图片欧美午夜| 精品av久久久久电影| 亚洲人线精品午夜| 国产精品色在线| 欧美成人情趣视频| 国产精品久久久久久久久久ktv | 国产亚洲精品v| 亚洲国产日本| 国产亚洲成av人片在线观看桃 | 国产日产欧产精品推荐色 | 欧美日韩国产首页在线观看| 久久精品91久久香蕉加勒比| 欧美激情2020午夜免费观看| 欧美一区激情| 欧美国产一区在线| 久久久精品久久久久| 欧美日韩国产一区二区三区| 免费中文日韩| 国产亚洲美州欧州综合国| 亚洲精选91| 亚洲高清视频一区| 欧美影院一区| 亚洲女同性videos| 欧美激情视频一区二区三区免费 | 欧美国产日韩xxxxx| 国产精品丝袜xxxxxxx| 亚洲激情一区二区| 一色屋精品亚洲香蕉网站| 亚洲一区免费| 亚洲自拍三区| 欧美日韩一区二区三区在线视频| 亚洲风情亚aⅴ在线发布| 黄色一区二区三区四区| 亚洲免费在线观看| 亚洲欧美日韩系列| 欧美日韩欧美一区二区| 亚洲高清色综合| 亚洲欧洲另类国产综合| 久久婷婷蜜乳一本欲蜜臀| 久久夜精品va视频免费观看| 国产午夜精品美女视频明星a级 | 亚洲茄子视频| 免费观看一区| 欧美激情视频在线免费观看 欧美视频免费一 | 久久免费的精品国产v∧| 午夜精品久久久久久久99樱桃| 六十路精品视频| 免费日韩一区二区| 精品999成人| 久久se精品一区精品二区| 久久精品国产欧美激情| 国产视频在线观看一区二区三区 | 久久在线免费观看| 国产在线播放一区二区三区| 欧美综合77777色婷婷| 久久综合久色欧美综合狠狠 | 性色av一区二区三区| 欧美一区二区免费观在线| 国产日韩在线播放| 久久久久国产一区二区三区四区 | 蜜桃av综合| 亚洲免费观看高清完整版在线观看熊 | 亚洲在线一区二区| 久久国产福利| 亚洲福利一区| 欧美日韩精品福利| 午夜在线精品偷拍| 欧美国产综合| 亚洲制服av| 狠狠久久亚洲欧美| 欧美精品久久久久a| 亚洲欧美另类中文字幕| 麻豆精品在线观看| 99精品久久免费看蜜臀剧情介绍| 欧美日韩精品一区二区天天拍小说| 一本高清dvd不卡在线观看| 欧美在线不卡| 日韩午夜在线播放| 国产婷婷色一区二区三区在线| 久久精品亚洲一区| 亚洲美女精品久久| 久久亚洲私人国产精品va| 9l国产精品久久久久麻豆| 国产欧美丝祙| 欧美精品一区二区久久婷婷| 亚洲一区观看| 亚洲国产精品成人综合色在线婷婷| 亚洲图片在线| 亚洲电影欧美电影有声小说| 国产精品电影在线观看| 久久综合狠狠| 午夜精品视频在线| 99国内精品久久| 亚洲国产成人av| 久久久久久有精品国产| 亚洲综合色噜噜狠狠| 影音先锋一区| 国产日韩在线播放| 国产精品久久久久久影视| 欧美成人一区二区三区片免费| 亚洲欧美一区二区三区在线| 亚洲啪啪91| 欧美黑人国产人伦爽爽爽| 亚洲成人影音| 欧美成人在线网站| 亚洲国产精品va在线观看黑人| 欧美一区网站| 99精品热视频| 亚洲二区在线视频| 永久免费精品影视网站| 国产亚洲一区二区在线观看 | 欧美一级久久久久久久大片| 亚洲精品一级| 亚洲国产午夜|