Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.util.*;
- public class Anagrams {
- public static void main(String[] args) throws IOException {
- findAll(System.in);
- }
- public static void findAll(InputStream inputStream) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
- String line;
- ArrayList<TreeSet<String>> anagrams = new ArrayList<>();
- while ((line = br.readLine()) != null){
- boolean f = true;
- for(TreeSet<String> group : anagrams){
- if(isAnagram(group.first(),line)){
- group.add(line);
- f = false;
- }
- }
- if(f){
- TreeSet<String> temp = new TreeSet<>();
- temp.add(line);
- anagrams.add(temp);
- }
- }
- anagrams.stream()
- .filter(each -> each.size() >= 5)
- .forEach(each -> {
- String temp = each.toString().replaceAll(",", "");
- System.out.println(temp.substring(1,temp.length()-1));
- });
- }
- public static boolean isAnagram(String s1, String s2){
- if(s1.length() != s2.length()) return false;
- char[] str1 = s1.toLowerCase().toCharArray();
- char[] str2 = s2.toLowerCase().toCharArray();
- Arrays.sort(str1); Arrays.sort(str2);
- return Arrays.equals(str1,str2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement