Java Anagrams

Sort by

recency

|

2481 Discussions

|

  • + 0 comments
        static boolean isAnagram(String a, String b) {
            return a.length() != b.length() ? false
                    : Arrays.equals(a.toLowerCase().chars().sorted().toArray(), b.toLowerCase().chars().sorted().toArray());
        }
    
  • + 0 comments

    Using HashMap

    import java.io.; import java.util.;

    public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner sc=new Scanner(System.in);
        String s1=sc.nextLine().toLowerCase();
        String s2=sc.nextLine().toLowerCase();
        String[] str1=s1.split("");
        String[] str2=s2.split("");
        HashMap<String,Integer> hs1=new HashMap<>();
        HashMap<String,Integer> hs2=new HashMap<>();
        for(int i=0;i<str1.length;i++){
            if(hs1.containsKey(str1[i])){
                hs1.put(str1[i],hs1.get(str1[i])+1);
            }
            else{
                hs1.put(str1[i],1);
            }
        }
        for(int i=0;i<str2.length;i++){
            if(hs2.containsKey(str2[i])){
                hs2.put(str2[i],hs2.get(str2[i])+1);
            }
            else{
                hs2.put(str2[i],1);
            }
        }
        if(hs1.equals(hs2)){
            System.out.println("Anagrams");
        }
        else{
            System.out.println("Not Anagrams");
        }
    }
    

    }

  • + 0 comments
    import java.io.*;
    import java.util.*;
    
    public class Solution {
    
        public static void main(String[] args) {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
            Scanner sc = new Scanner(System.in);
            char [] first = sc.nextLine().toLowerCase().toCharArray();
            char [] second = sc.nextLine().toLowerCase().toCharArray();
            
            Arrays.sort(first);
            Arrays.sort(second);
            
            System.out.println(Arrays.toString(first).equals(Arrays.toString(second))?"Anagrams":"Not Anagrams");
    
    //Easy Working code
            
        }
    }
    
  • + 0 comments

    Simple Solution

    static boolean isAnagram(String a, String b) {
            // Complete the function
            a = a.toLowerCase();
            b = b.toLowerCase();
            if(a.length() != b.length()) return false;
            char[] ch1 = a.toCharArray();
            char[] ch2 = b.toCharArray();
            int[] freq1 = new int[26];
            int[] freq2 = new int[26];
            for(int i=0;i<ch1.length;i++){
                freq1[ch1[i]-'a']++;
            }
            for(int i=0;i<ch2.length;i++){
                freq2[ch2[i]-'a']++;
            }
            
            for(int i=0;i<freq1.length;i++){
                if(freq1[i]!= freq2[i]){
                    return false;
                }
            }
            
            return true;
        }
    
  • + 0 comments

    Do vote if you like the solution.

     static boolean isAnagram(String a, String b) {
            int[] charCount=new int[26];
            for(char ch:a.toCharArray()){
                charCount[Character.toLowerCase(ch) - 'a']++;
            }
            for(char ch:b.toCharArray()){
                charCount[Character.toLowerCase(ch)-'a']--;
            }
            
            for(int count:charCount){
                if(count!=0) return false;
            }
            return true;
        }