首页 > 代码库 > 未完成 Given an array of strings, return all groups of strings that are anagrams.
未完成 Given an array of strings, return all groups of strings that are anagrams.
1 import java.util.ArrayList; 2 import java.util.HashSet; 3 import java.util.List; 4 import java.util.Set; 5 6 /** 7 * Created by cuihongyu on 2017/06/23. 8 */ 9 public class Solution { 10 11 public static void main(String[] args) { 12 String[] strings = {"", "", "eat", "den", "tea", "and", "ate"}; 13 System.out.print(anagrams(strings)); 14 } 15 16 /** 17 * @param strs A list of strings 18 * @return A list of strings 19 */ 20 public static List<String> anagrams(String[] strs) { 21 List<String> result = new ArrayList<String>(); 22 if (strs == null) { 23 return result; 24 } 25 for (int index1 = 0; index1 < strs.length; index1++) { 26 boolean hasAnagram = false; 27 int index2; 28 for (index2 = index1 + 1; index2 < strs.length; index2++) { 29 if (isAnagram(strs[index1], strs[index2])) { 30 if (!hasAnagram) { 31 result.add(strs[index1]); 32 } 33 result.add(strs[index2]); 34 hasAnagram = true; 35 } 36 } 37 } 38 // Set<String> set = new HashSet<String>(); 39 // set.addAll(result); 40 // result.clear(); 41 // result.addAll(set); 42 return result; 43 } 44 45 private static boolean isBreak(int index, boolean s2) { 46 47 return s2; 48 } 49 50 /** 51 * 判断两个数是否是anagram 52 * @param s1 The first string 53 * @param s2 The second string 54 * @return true or false 55 */ 56 private static boolean isAnagram(String s1, String s2) { 57 if (s1.length() != s2.length()) { 58 return false; 59 } 60 char[] charS1 = s1.toCharArray(); 61 char[] charS2 = s2.toCharArray(); 62 int[] nums = new int[127]; 63 int index; 64 for (int i = 0; i < s1.length(); i++) { 65 index = charS1[i] - ‘a‘; 66 nums[index]++; 67 index = charS2[i] - ‘a‘; 68 nums[index]--; 69 } 70 for (int j = 0; j < 127; j++) { 71 if (nums[j] != 0) { 72 return false; 73 } 74 } 75 return true; 76 } 77 }
未完成 Given an array of strings, return all groups of strings that are anagrams.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。