`
cjf068
  • 浏览: 34213 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

求变位词组合

 
阅读更多
public class CharComp 
{

	/**
	 * 
	 * 1.给单词排序
	 * 2.给排序后的单词设定标识符
	 * 3.通过标识符在map中查找对应的list,并将其追加其中(未排序的单词)
	 * 
	 */
	
	public static Map<String,Set<String>> getGroupWords(String [] words)
	{
		Map<String,Set<String>> map = new HashMap<String,Set<String>>();
		for(String word:words)
		{
			String id = getID(word);
			Set<String> set = map.get(id);
			if(set==null)
			{
				set =new TreeSet<String>();
				map.put(id, set);
			}
			set.add(word);
		}
		
		return map;
	}
	
	private static String getID(String word)
	{
		char array []= 	word.toCharArray();
		String id="";
		Arrays.sort(array);
		int count = 0;
		char last ='.';
		for(char ch:array)
		{
			if(last == ch||count==0)
			{
				count++;
				last = ch;
			}else
			{
				id = id+last+count;
				count = 1;
				last = ch;
			}
			
			
		}
		if(!".".equals(last))
			id = id+last+count;
		return id;
	}
	
//	public static void main(String args[])
//	{
//		System.out.println(getID("mygodmygod"));
//	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics