MiYu原创, 转帖请注明 : 转载自 ______________白白の屋
( 很简单的一题, 检索输入的串是否存在, 存在就替换输出, 不存在直接输出就可以了 )
最后无奈, 纯C++ STL..过了, 时间竟然用了 1600+MS 还是 C++交的, G++要3400+MS, 不
明白为什么时间差那么多, 用trie 做了次, 250MS... 改了好几次效率都上不来 .... YM 中 把trie 写成了 伪 map ,只有一点简单的功能,
其他的不想写了. 写得好复杂....................
伪 map 代码如下 : 好长.....................
STL 代码如下 : 好短....
/*
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋
http://www.cnblog.com/MiYu
Author By : MiYu
Test : 1
Program : 1075
*/
#include <iostream>
#include <string>
#include <map>
using namespace std;
string words,temp;
map < string , string > mp;
int main ()
{
cin >> words;
while ( cin >> words, words != "END" )
{
cin >> temp;
mp[ temp ] = words;
}
cin >> words;
getchar();
while ( getline ( cin, words ) && words != "END" )
{
string out = "";
int len = words.size();
for ( int i = 0; i != len; ++ i )
{
if ( isalpha ( words[i] ) )
{
out += words[i];
}
else
{
if ( mp[out] == "" )
cout << out;
else
cout << mp[out];
cout << words[i];
out = "";
}
}
cout << endl;
}
return 0;
}