Java Anagrams

Sort by

recency

|

2506 Discussions

|

  • + 0 comments
          Scanner sc = new Scanner(System.in);
            String a = sc.next();
            String b = sc.next();
            HashMap<String, Integer> mapA = new HashMap<>();
            HashMap<String, Integer> mapB = new HashMap<>();
            for (int i = 0; i < a.length(); i++) {
                String letter = String.valueOf(a.charAt(i)).toLowerCase();
                if(mapA.containsKey(letter)){
                    Integer sum = mapA.get(letter);
                    mapA.put(letter, sum += 1);
                }else{
                    mapA.put(letter, 1);
                }
            }
            for (int i = 0; i < b.length(); i++) {
                String letter = String.valueOf(b.charAt(i)).toLowerCase();
                if(mapB.containsKey(letter)){
                    Integer sum = mapB.get(letter);
                    mapB.put(letter, sum += 1);
                }else{
                    mapB.put(letter, 1);
                }
            }
            
            boolean isAnagrams = true;
            for(Map.Entry entry : mapA.entrySet()){
                if(entry.getValue() != mapB.get(entry.getKey()) || mapA.size() != mapB.size()){
                    isAnagrams = false;
                }
            }
            System.out.println(isAnagrams ? "Anagrams" : "Not Anagrams");
    
  • + 1 comment

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

    public class Solution {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a=sc.nextLine().toLowerCase();
        String b=sc.nextLine().toLowerCase();
        if(a.length()!=b.length()){
            System.out.println("Not Anagrams");
            return;
        }
        int chararr[] = new int[26];
        int charbrr[] = new int[26];
        for(int i=0;i<26;i++)
            chararr[i]=0;
        for(int i=0;i<a.length();i++){
            chararr[a.charAt(i)-97]++;
            charbrr[b.charAt(i)-97]++;
    
        }
        for(int i=0;i<a.length();i++){
            if(chararr[a.charAt(i)-97]!=charbrr[a.charAt(i)-97]){
                System.out.println("Not Anagrams");
                break;
            }else{
                System.out.println("Anagrams");
                break;
            }
        }
    }
    

    }

  • + 0 comments

    Hello! I put here my solution! I know maybe it's not the best solution but with I'm open to opinions! :)

    import java.util.Scanner;

    public class Solution {

    static boolean isAnagram(String a, String b) {
        boolean check;
        String a1 = a.toLowerCase();
        String b2 = b.toLowerCase();
        char[] sortA1 = a1.toCharArray();
        char[] sortB2 = b2.toCharArray();
        java.util.Arrays.sort(sortA1); 
        java.util.Arrays.sort(sortB2); 
         a1 = new String(sortA1);
         b2 = new String(sortB2);
        if (a1.equals(b2) ) {
            check = true;
        } else {
            check = false;
        }
        return check;
    }
    
    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" );
    }
    

    }

  • + 1 comment

    why it not covering test cases failed 3/17

    static boolean isAnagram(String a, String b) {
            // Complete the function
            String c=a.toLowerCase();
            String d=b.toLowerCase();
            String e= new StringBuilder(b.toLowerCase()).reverse().toString();   
             return (c.equalsIgnoreCase(e)||c.equalsIgnoreCase(d)? true : false);
                
            }
    
  • + 0 comments

    This is a great exercise to reinforce understanding of string manipulation, character frequency, and case insensitivity in coding! 11xplayblack