1.°Ù¶ÈÓïÑÔ·Òë»ú
°Ù¶ÈµÄ¹¤³ÌʦÃÇÊǷdz£×¢ÖØÐ§Âʵģ¬ÔÚ³¤ÆÚµÄ¿ª·¢Óë²âÊÔ¹ý³ÌÖУ¬ËûÃÇÖð½¥´´ÔìÁËÒ»Ì×¶ÀÌØµÄËõÂÔÓï¡£ËûÃÇÔÚÆ½Ê±µÄ½»Ì¸¡¢»áÒ飬ÉõÖÁÔÚ¸÷ÖÖ¼¼ÊõÎĵµÖж¼»á´óÁ¿ÔËÓá£
ΪÁËÈÃÐÂÔ±¹¤¿ÉÒÔ¸ü¿ìµØÊÊÓ¦°Ù¶ÈµÄÎÄ»¯£¬¸üºÃµØÔĶÁ¹«Ë¾µÄ¼¼ÊõÎĵµ£¬ÈËÁ¦×ÊÔ´²¿¾ö¶¨¿ª·¢Ò»Ì×רÓõķÒëϵͳ£¬°ÑÏà¹ØÎĵµÖеÄËõÂÔÓïºÍרÓÐÃû´Ê·Òë³ÉÈÕ³£ÓïÑÔ¡£
ÊäÈëÒªÇó£º
ÊäÈëÊý¾Ý°üº¬Èý²¿·Ö£º
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С×é¡£
ÑùÀý£ºin.txt
Êä³öÒªÇó£º
Êä³ö½«ËõÂÔÓïת»»³ÉÈÕ³£ÓïÑÔºóµÄÎĵµ¡££¨½«ËõÂÔÓïת»»³ÉÈÕ³£ÓïÑÔ£¬ÆäËû×Ö·û±£ÁôÔÑù£©¡£Àý£º
°Ù¶ÈµÄ²¿ÃŰüÀ¨ÃÅ»§ËÑË÷²¿£¬²úÆ·Êг¡²¿£¬ÈËÁ¦×ÊÔ´²¿£¬²úÆ·ÍÆ¹ã²¿£¬Êг¡·¢Õ¹²¿µÈµÈ£¬ÆäÖÐÃÅ»§ËÑË÷²¿»¹°üÀ¨×ÔÈ»ÓïÑÔ´¦ÀíС×é¡£
ÑùÀý£ºout.txt
ÆÀ·Ö¹æÔò£º
1£®³ÌÐò½«ÔËÐÐÔÚһ̨Linux»úÆ÷ÉÏ£¨ÄÚ´æÊ¹Óò»×÷ÑϸñÏÞÖÆ£©£¬ÔÚÿһ²âÊÔÓÃÀýÉÏÔËÐв»Äܳ¬¹ý10Ã룬·ñÔò¸ÃÓÃÀý²»µÃ·Ö£»
2£®ÒªÇó³ÌÐòÄܰ´ÕÕÊäÈëÑùÀýµÄ¸ñʽ¶ÁÈ¡Êý¾ÝÎļþ£¬°´ÕÕÊä³öÑùÀýµÄ¸ñʽ½«ÔËÐнá¹ûÊä³öµ½±ê×¼Êä³öÉÏ¡£Èç¹û²»ÄÜÕýÈ·¶ÁÈëÊý¾ÝºÍÊä³öÊý¾Ý£¬¸ÃÌ⽫²»µÃ·Ö£»
3£®¸ÃÌâÄ¿¹²ÓÐ4¸ö²âÊÔÓÃÀý£¬Ã¿¸ö²âÊÔÓÃÀýΪһ¸öÊäÈëÎļþ¡£¸÷²âÊÔÓÃÀýÕ¼¸ÃÌâÄ¿·ÖÊýµÄ±ÈÀý·Ö±ðΪ25%£¬25%£¬25%£¬25%£»
4£®¸ÃÌâÄ¿20·Ö¡£
×¢ÒâÊÂÏ
1£®ÊäÈëÊý¾ÝÊÇÖÐÓ¢ÎÄ»ìºÏµÄ£¬ÖÐÎIJÉÓÃGBK±àÂë¡£
GBK£ºÊÇÓÖÒ»¸öºº×Ö±àÂë±ê×¼£¬È«³Æ¡¶ºº×ÖÄÚÂëÀ©Õ¹¹æ·¶¡·¡£
²ÉÓÃË«×Ö½Ú±íʾ£¬×ÜÌå±àÂ뷶ΧΪ 8140-FEFE£¬Ê××Ö½ÚÔÚ 81-FE Ö®¼ä£¬Î²×Ö½ÚÔÚ 40-FE Ö®¼ä£¬Åųýxx7F¡£×Ü¼Æ 23940
¸öÂë룬¹²ÊÕÈë 21886 ¸öºº×ÖºÍͼÐηûºÅ£¬ÆäÖкº×Ö£¨°üÀ¨²¿Ê׺͹¹¼þ£©21003 ¸ö£¬Í¼ÐηûºÅ 883 ¸ö¡£
2£®Îª±£Ö¤´ð°¸µÄΨһÐÔ£¬ËõÂÔÓïµÄת»»²ÉÓÃÕýÏò×î´óÆ¥Å䣨´Ó×óµ½ÓÒΪÕý·½Ïò£©ÔÔò¡£Çë×¢ÒâÑùÀýÖÐPMDµÄ·Òë¡£
(˵Ã÷: ÖØÐÂÑо¿ÁËÒ»ÏÂÊäÈëÊä³öÁ÷£¬Õâ¸öÊÇÐ޸ĹýµÄµÚ¶þ°æ)
#include <iostream>
#include <fstream>
#include <string>
#include <list>
using namespace std;
struct CompareGreater
{
public:
bool operator()(pair<string, string>& A, pair<string, string>& B)
{
return A.first.length() > B.first.length();
}
};
int main(int argc, char* argv[])
{
string fileName = argv[1];
fstream fileIn(fileName.c_str(), ios::in);
int N;
fileIn>>N;
list< pair<string, string> > StringPairList;
for(int i = 0; i < N; i++)
{
pair<string, string> tempPair;
fileIn>>tempPair.first;
fileIn>>tempPair.second;
StringPairList.push_back(tempPair);
}
string TargetString;
getline(fileIn, TargetString, (char)EOF);
StringPairList.sort(CompareGreater());
list< pair<string, string> >::iterator itr;
for(itr = StringPairList.begin(); itr != StringPairList.end(); itr++)
{
int nPos = TargetString.find((*itr).first);
while(nPos != -1)
{
TargetString.replace(nPos, (*itr).first.length(), (*itr).second.c_str());
nPos = TargetString.find((*itr).first);
}
}
cout<<TargetString;
fileIn.close();
return 0;
}ÎÒµÄps
´Ë³ÌÐòÔÚlinux+g++ƽ̨ÉÏ˳ÀûÔËÐУ¬windowsÏÂvc++³ö´í£¬¾Ý×ÊÁÏÏÔʾΪvc++µÄSTL¿â³ýÁ˵ãСbug,¿É¼ûSTLÔÚ³ÌÐòÉè¼ÆÖеÄÖØÒªÐÔ¡£


