日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百度语言翻译机

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度语言翻译机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

百度語言翻譯機

2006 年百度之星程序設計大賽初賽題目 6?

百度語言翻譯機?

時限 1s?

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

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

輸入數據:?

輸入數據包含三部分?

1. 第一行包含一個整數 N ( N<=10000 ),表示總共有多少個縮率語的詞條。?

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

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

輸出數據:?

輸出將縮率語轉換成日常語言的文檔。(將縮率語轉換成日常語言,其他字符保留原樣)?

輸入樣例



6?

PS 門戶搜索部?

NLP 自然語言處理?

PM 產品市場部?

HR 人力資源部?

PMD 產品推廣部?

MD 市場發展部?

百度的部門包括 PS , PM , HR , PMD , MD 等等,其中 PS 還包括 NLP 小組。?



輸出樣例



百度的部門包括門戶搜索部,產品市場部,人力資源部,產品推廣部,市場發展部等等,其中門戶搜索部還包括自然語言處理小組。



注意:?

1 . 輸入數據中是中英文混合的,中文采用 GBK 編碼。?

2 . 為保證答案的唯一性,縮率語的轉換采用正向最大匹配(從左到右為正方向)的原則。請注意輸入例子中 PMD 的翻譯。? #include<iostream> #include<string>using namespace std;int main() {int n;cout<<"input a number:";cin>>n;while((n>1000)||n<1){cout<<"please input a real number:";cin>>n;}string s_name[1000],f_name[1000];for(int i=0;i<n;i++){cin>>s_name[i]>>f_name[i];}//防止比較過程中斷的先被找到,要對縮略語進行從長到段的排序 冒泡排序for(int i=0;i<n-1;i++)for(int j=i+1;j<n;j++){if(s_name[i].length()<s_name[j].length()){swap(s_name[i],s_name[j]);swap(f_name[i],f_name[j]);}}string s;cout<<"\n please input the content:"<<endl;cin>>s;for(int i=0;i<n;i++){while(s.find(s_name[i])!=string::npos){int index=s.find(s_name[i]);s.erase(index,s_name[i].length());//刪除簡寫的名稱s.insert(index,f_name[i]);//插入全稱}}cout<<"the full content is:"<<endl;cout<<s<<endl;return 0; }

不使用string類的方法 用結構體實現

#include<iostream> using namespace std;struct Baidu {char s_name[10];char f_name[100]; };void sort_name(Baidu baidu[],int n) {for(int i=0;i<n-1;i++)for(int j=i;j<n;j++){if(strlen(baidu[i].s_name)<strlen(baidu[j].s_name))swap(baidu[i],baidu[j]);} }void replace_name(Baidu baidu[],char s[],int n) {int length;char tmp[1000];for(int i=0;i<n;i++){char *p=strstr(s,baidu[i].s_name);while(p!=NULL){length=strlen(baidu[i].s_name);*p=0;strcpy(tmp,p+length);//把簡稱后面的內容全部拷貝到tmp內//strcat(s,baidu[i].f_name); strcat(p,baidu[i].f_name);//strcat(s,tmp);strcat(p+strlen(baidu[i].f_name),tmp);p=strstr(s,baidu[i].s_name);}} }int main() {int n;cout<<"input the number of s-f word:";cin>>n;Baidu baidu[10];for(int i=0;i<n;i++)cin>>baidu[i].s_name>>baidu[i].f_name;sort_name(baidu,n);cout<<"input the content:"<<endl;char s[1000];cin>>s;replace_name(baidu,s,n);cout<<"replaced content is:"<<endl;cout<<s; }

?

總結

以上是生活随笔為你收集整理的百度语言翻译机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。