首页 > 其他 > 详细

题解 UVA156 【Ananagrams】

时间:2019-03-31 21:19:27      阅读:133      评论:0      收藏:0      [点我收藏+]

自认为稍微比紫书代码好理解一些,可能有点慢,但对我这样的蒟蒻友好很多。 和紫书比较大的区别主要在我用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】

原文:https://www.cnblogs.com/PandaChang/p/10633199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!