当前位置:首页 > 开发 > 编程语言 > 算法 > 正文

一道关于单词归类的算法题简单求解

发表于: 2012-02-24   作者:bewithme   来源:转载   浏览次数:
摘要:  前不久在ITEYE上看到一题算法题,看了上面很多了给出了不少方案,但大多都是代码一大堆,比较难理解,这里我也写了一个,欢迎各位高手指点。   题目:给定一系列的单词,要求把字母个数和字母都相同的单词规类为一组。比如 top,fuck,you,oh,yes,pot,foot,toof,因为top和pot两个单词字母的数量相同,而且它们包括的字母都是一样的,只是字母顺序不一样

 前不久在ITEYE上看到一题算法题,看了上面很多了给出了不少方案,但大多都是代码一大堆,比较难理解,这里我也写了一个,欢迎各位高手指点。

 

题目:给定一系列的单词,要求把字母个数和字母都相同的单词规类为一组。比如 top,fuck,you,oh,yes,pot,foot,toof,因为top和pot两个单词字母的数量相同,而且它们包括的字母都是一样的,只是字母顺序不一样,这样的单词我们都归为一组。foot与toof也认为是同一组。

 

思路:第一步,得到单词系列的数组,数组的元素是一个单词。

         第二步,创建一个map,再遍历每个数组。

         第三步,读取每个元素,将其转化为char[]数组,将其排序后,再转化为String 作为map的key值,把未排序的元素值作为value  存放到map中。存放时先检查该key对应的元素是否已经存在,如果存在,就将原来的值取出,再上当前值重新放回map中。

         第四步,遍历map的所所有value,即可以得到分组后的结果。

 

		String str="top,fuck,you,oh,yes,pot,foot,toof";
		String[] strTem=str.split(",");
		Map map=new HashMap();
		for(int i=0;i<strTem.length;i++)
		{
			String temVal=strTem[i];
			char[] temChar=temVal.toCharArray();
			Arrays.sort(temChar);
			String key=new String(temChar);
			if(map.get(key)==null)
			{
			    map.put(key,temVal);
			}else{
				map.put(key,map.get(key).toString()+" "+temVal);
			}
		}
        System.out.print(map.toString());

我的网店,有劳各位参观参观 http://mrs-x.taobao.com/

一道关于单词归类的算法题简单求解

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
经楼下朋友提醒,我这个算法求出的正好是21位水仙花数。于是我对其进行了稍微的修订,使得其支持任
问题: F, C, T, M, P, Y六人去旅游,其中F, C为情侣, 两人之间不结算费用; T, M也是情侣, 两人之间
本题摘自 www.topcoder.com 题目如下:你有一个很多方形格子所组成的矩阵组,一些小方格是黑色的,一
概述:本文翻译了NB程序员们常去的国际知名的算法竞赛网站codeforces的第259期的一道入门级算法题,
概述:本文翻译了NB程序员们常去的国际知名的算法竞赛网站codeforces的第259期的一道入门级算法题,
算法框架与问题求解 目录 什么是回溯法? 回溯法的通用框架 利用回溯法解决问题 问题1:求一个集合
话说某日去面试,自己脑残很简单的sql都写不好,得多补补基础了,平日里总眼高手低可不行。 记录下
好久没有做算法题了,重温几个简单的算法题。 第一题:求子数组的最大和 这是一道很常见的算法题,
  前言   这时上次学妹课程的一道作业题,我花了点时间做了下,其题目内容为:   试写一程序,
这个是那道题目,让写出输出的结果: 刚看到这一道题目的时候我的第一反应就是输出Son Father。但是
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号