Anagrams in java

Two strings,  and , are called anagrams if they contain all the same characters in the same frequencies. For example, the anagrams of CAT are CATACTTACTCAATC, and CTA.

Complete the function in the editor. If  and  are case-insensitive anagrams, print "Anagrams"; otherwise, print "Not Anagrams" instead.

Input Format

The first line contains a string denoting .

The second line contains a string denoting .

Constraints

  • Strings  and  consist of English alphabetic characters.
  • The comparison should NOT be case sensitive.

Output Format

Print "Anagrams" if  and  are case-insensitive anagrams of each other; otherwise, print "Not Anagrams" instead.

Sample Input 0

anagram

margana

Sample Output 0

Anagrams

Explanation 0

CharacterFrequency: anagramFrequency: margana
A or a33
G or g11
N or n11
M or m11
R or r11

The two strings contain all the same letters in the same frequencies, so we print "Anagrams".

Sample Input 1

anagramm

marganaa

Sample Output 1

Not Anagrams

Explanation 1

CharacterFrequency: anagrammFrequency: marganaa
A or a34
G or g11
N or n11
M or m21
R or r11

The two strings don't contain the same number of a's and m's, so we print "Not Anagrams".

Sample Input 2

Hello

hello

Sample Output 2

Anagrams

Explanation 2

CharacterFrequency: HelloFrequency: hello
E or e11
H or h11
L or l22
O or o11

The two strings contain all the same letters in the same frequencies, so we print "Anagrams".

Program:

import java.util.Scanner;

public class Solution {
    private static int[] frequency = new int[26];
    static boolean isAnagram(String a, String b) {
        // Complete the function
        a = a.toLowerCase();
        b = b.toLowerCase();
        
        for (char c : a.toCharArray()) {
            frequency[(int) c - 97]++;
        }
        for (char c : b.toCharArray()) {
            frequency[(int) c - 97]--;
        }
        
        boolean anagrams = true;
        for (int i : frequency) {
            if (i != 0) {
                anagrams = false;
                break;
            }
        }
        return anagrams;
    }

  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" );
    }
}

No comments:

Post a Comment