Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.util.*;
  6.  
  7. public class Anagrams {
  8.  
  9. public static void main(String[] args) throws IOException {
  10. findAll(System.in);
  11. }
  12.  
  13. public static void findAll(InputStream inputStream) throws IOException {
  14. BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
  15. String line;
  16. ArrayList<TreeSet<String>> anagrams = new ArrayList<>();
  17. while ((line = br.readLine()) != null){
  18. boolean f = true;
  19. for(TreeSet<String> group : anagrams){
  20. if(isAnagram(group.first(),line)){
  21. group.add(line);
  22. f = false;
  23. }
  24. }
  25. if(f){
  26. TreeSet<String> temp = new TreeSet<>();
  27. temp.add(line);
  28. anagrams.add(temp);
  29. }
  30. }
  31. anagrams.stream()
  32. .filter(each -> each.size() >= 5)
  33. .forEach(each -> {
  34. String temp = each.toString().replaceAll(",", "");
  35. System.out.println(temp.substring(1,temp.length()-1));
  36. });
  37. }
  38.  
  39. public static boolean isAnagram(String s1, String s2){
  40. if(s1.length() != s2.length()) return false;
  41. char[] str1 = s1.toLowerCase().toCharArray();
  42. char[] str2 = s2.toLowerCase().toCharArray();
  43. Arrays.sort(str1); Arrays.sort(str2);
  44. return Arrays.equals(str1,str2);
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement