1. 程式人生 > >題解 UVA156 【Ananagrams】

題解 UVA156 【Ananagrams】

沒有 str algo += ostream class 紫書 Language tor

自認為稍微比紫書代碼好理解一些,可能有點慢,但對我這樣的蒟蒻友好很多。 和紫書比較大的區別主要在我用map對應的是標準化字符串和輸入的字符串

//Uva 156 
#include<iostream>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
string dc[1010];

void zh(string& znow)	//將字符串標準化 
{
	int len=znow.size();
	for(int i=0;i<len;i++)
	{
		if(znow[i]<=‘Z‘&&znow[i]>=‘A‘) 
			znow[i]+=32;
	} 
	sort(znow.begin(),znow.end());
}

int main()
{
	map<string,string>smap;		//將字符串映射到標準化的字符串 
	string now;
	cin>>now;
	while(now!="#")
	{
		string znow=now;
		zh(znow);
		if(smap.count(znow)==0)		//map裏沒有標準化字符串,添加 
		{
			smap[znow]=now;
		}
		else		//map裏已有標準化字符串,刪除(變為*) 
		{
			smap[znow]="*";		
		}
		cin>>now;
	}
	
	int a=0;	
	map<string,string>::iterator iter;
	for(iter=smap.begin();iter!=smap.end();iter++)
	{
		if(iter->second!="*")	//只出現過一次的標準化字符串 
			dc[a++]=iter->second;		 
	}
	
	sort(dc,dc+a);		//排序 
	for(int j=0;j<a;j++)
			cout<<dc[j]<<endl;
	return 0;
}

題解 UVA156 【Ananagrams】