题目
Sample Input
ladder came tape soon leader acme RIDE lone Dreis peat
ScAlE orb eye Rides dealer NotE derail LaCeS drIed
noel dire Disk mace Rob dries
Sample Output
Disk
NotE
derail
drIed
eye
ladder
soon
题解
题目输入文本中的单词 , 如果不分大小写和其他单词不同 , 则可以输出这个单词 ( 注意是原题目的单词 ) , 最终的输出是文本中可以输出的单词 再按字典顺 输出
思路很简单 , 将每个单词排序以后用map标记一下 , 存进另一个数组里 , 最后sort一下数组 , 输出
代码
#include <bits/stdc++.h>
using namespace std ;
#define rg register
string rep ( string & s ) {
string t(s) ;
for ( rg int i = 0 ; i < t.size() ; ++i )
t[i] = tolower( t[i] ) ;
sort( t.begin() , t.end() ) ;
return t ;
}
int main ( ) { freopen( "F:\\in\\summer_map.txt" , "r" , stdin ) ;
string s[1000+10] ;
string ans[1000+10];
map<string,int> mp ;
rg int k = 0 ;
rg int cnt = 0 ;
mp.clear() ;
while ( cin >> s[k] ) { // 读入
mp[rep(s[k])]++ ;
k++ ;
}
for ( rg int i = 0 ; i < k-1 ; ++i ) { // k-1 是 '#'
if ( mp[rep(s[i])] == 1 ) {
ans[cnt] = s[i] ;
cnt++ ;
}
}
sort ( ans , ans+cnt ) ;
for ( rg int i = 0 ; i < cnt ; ++i )
cout << ans[i] << endl ;
return 0 ;
}