Java Anagrams

Sort by

recency

|

2530 Discussions

|

  • + 0 comments

    used java 15 public class Solution {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       String a = sc.next();
       String b = sc.next();
       a=a.toLowerCase();
       b=b.toLowerCase();
       char a1[] = a.toCharArray();
       char b1[] = b.toCharArray();
       Arrays.sort(a1);
       Arrays.sort(b1);
       if(a1.length==b1.length){
            if(Arrays.equals(a1,b1)){
                System.out.println("Anagrams");
            }
            else{
                System.out.println("Not Anagrams");
            }
       }
       else{
        System.out.println("Not Anagrams");
       }
    }
    
  • + 0 comments

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
    
        String a = sc.next();
        String b = sc.next();
        sc.close();
    
        isAnagram(a, b);  
    }
    
    static String sort(String s) {
    
        char[] charArray = s.toCharArray();
        Arrays.sort(charArray);
        return new String(charArray);
    }
    
    static void isAnagram(String a, String b) {
    
        System.out.print(sort(a.replace(" ", "").toLowerCase())
                            .equals(sort(b.replace(" ", "").toLowerCase())) 
                            ? "Anagrams" : "Not Anagrams");
    }
    

    }

  • + 0 comments
    import java.util.Scanner;
    
    public class Solution {
    
        static boolean isAnagram(String a, String b) {
            if(a.length()!=b.length()) return false;
            
            a=a.toUpperCase();
            b=b.toUpperCase();
            char[] char_Arr=new char[256]; 
            
            for(int i=0;i<a.length();i++){
                int current_char=(int)a.charAt(i);
                char_Arr[current_char]++;
            }
            
            for(int i=0;i<b.length();i++){
                int current_char=(int)b.charAt(i);
                char_Arr[current_char]--;
            }
            
            for(int i=0;i<char_Arr.length;i++){
                if(char_Arr[i]!=0){
                    return false;
                }
            }
            return true;   
        }
    
      public static void main(String[] args) {
        
            Scanner scan = new Scanner(System.in);
            String a = scan.next();
            String b = scan.next();
            scan.close();
            boolean ret = isAnagram(a, b);
            System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
        }
    }
    
  • + 0 comments

    Newbie + Effective solution

    static boolean isAnagram(String a, String b) {
            // Complete the function
            if(a.length()!=b.length())return false;
            
            a=a.toLowerCase();
            b=b.toLowerCase();
            
            int[] arr=new int[26];
            for(int i=0;i<a.length();++i){
                arr[(int)a.charAt(i)-97]++;
                arr[(int)b.charAt(i)-97]--;
            }
            for(int i=0;i<26;++i){
                if(arr[i]!=0)return false;
            }
            return true;
    
        }
    
  • + 0 comments

    Unique solution by replacing found chars:

        public static boolean isAnagram(String a, String b) {
            if (a.length() != b.length()) return false;
            a = a.toLowerCase();
            b = b.toLowerCase();
            for (int i=0;i<a.length();i++){
                b= b.replaceFirst(String.valueOf(a.charAt(i)), "");
                
            }
            return (b.equals("")) ?  true :  false;
        }