程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode——Anagrams

LeetCode——Anagrams

編輯:C++入門知識

LeetCode——Anagrams


 

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

 

易位構詞游戲的英文詞匯是 anagram,這個詞來源於有“反向”或“再次”的含義的希臘語字根ana-和有“書寫”、“寫下”的意思的詞根grahpein。易位構詞是一類文字游戲(更准確地說是一類“詞語游戲”),是將組成一個詞或短句的字母重新排列順序,原文中所有字母的每次出現都被使用一次,這樣構造出另外一些新的詞或短句。http://zh.wikipedia.org/wiki/%E6%98%93%E4%BD%8D%E6%9E%84%E8%AF%8D%E6%B8%B8%E6%88%8F

 

	public List anagrams(String[] strs) {
		List list = new ArrayList();
		Map> map = new HashMap>();
		for(String str : strs){
			char[] ch = str.toCharArray();
			Arrays.sort(ch);
			String s = new String(ch);
			if(map.containsKey(s))
				map.get(s).add(str);
			else{
				List li = new ArrayList();
				li.add(str);
				map.put(s,li);
			}
		}
		for(List ls : map.values()){
			if(ls.size() > 1)
				list.addAll(ls);
		}
		return list;
	}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved