How To Cheque If 2 String Are Anagram Inwards Coffee - Plan Example

Write a Java programme to cheque if 2 String are anagram of each other, is approximately other proficient coding enquiry asked at fresher bird Java Interviews. This enquiry is on like bird of finding heart in addition to soul chemical component division of LinkedList inwards 1 pass in addition to swapping 2 numbers without using temp variable. By the agency 2 String are called anagram, if they contains same characters but on unlike lodge e.g. army in addition to mary, stop in addition to pots etc. Anagrams are genuinely mix-up of characters inwards String. If y'all are familiar amongst String API, i.e. java.lang.String than y'all tin easily solve this problem. In lodge to cheque if  Strings are anagram, y'all demand to larn in that place grapheme array in addition to run into if they are equal or not. Though y'all tin besides purpose indexOf(), substring() and StringBuffer or StringBuilder  class to solve this question. In this Java program, nosotros volition run into 3 ways to solve this interview questions, in addition to cheque if 2 String are anagram or not. By the way, if y'all are preparing for Java interview, it's proficient to laid upwardly some data structures in addition to algorithms questions as well. More often, in that place is 1 or to a greater extent than questions from programming, coding in addition to logic inwards these interviews.


Java programme to cheque if String is anagram

equals method of Arrays, provide true, solely if array contains same length, in addition to each index has same character. 


For simplicity, I possess got left checking if String is zip or empty in addition to converting them into working capital missive of the alphabet or lowercase, y'all tin produce that if y'all want. If Interviewer enquire y'all to write production lineament code, in addition to thus I would advise definitely seat those checks in addition to throw IllegalArgumentException for zip String or y'all tin merely provide false. I would personally prefer to provide imitation rather than throwing Exception, like to equals() method. Anyway, hither are three ways to cheque if 2 String are Anagram or not. I possess got besides included a JUnit Test to verify diverse String which contains both anagram in addition to not.

import java.util.Arrays;  /**  * Java programme - String Anagram Example.  * This programme checks if 2 Strings are anagrams or non  *  * @author Javin Paul  */ public class AnagramCheck {         /*      * One agency to honour if 2 Strings are anagram inwards Java. This method      * assumes both arguments are non zip in addition to inwards lowercase.      *      * @return true, if both String are anagram      */     public static boolean isAnagram(String word, String anagram){                if(word.length() != anagram.length()){             return false;         }                 char[] chars = word.toCharArray();                 for(char c : chars){             int index = anagram.indexOf(c);             if(index != -1){                 anagram = anagram.substring(0,index) + anagram.substring(index +1, anagram.length());             }else{                 return false;             }                    }                 return anagram.isEmpty();     }         /*      * Another agency to cheque if 2 Strings are anagram or non inwards Java      * This method assumes that both give-and-take in addition to anagram are non zip in addition to lowercase      * @return true, if both Strings are anagram.      */     public static boolean iAnagram(String word, String anagram){         char[] charFromWord = word.toCharArray();         char[] charFromAnagram = anagram.toCharArray();                Arrays.sort(charFromWord);         Arrays.sort(charFromAnagram);                 return Arrays.equals(charFromWord, charFromAnagram);     }             public static boolean checkAnagram(String first, String second){         char[] characters = first.toCharArray();         StringBuilder sbSecond = new StringBuilder(second);                 for(char ch : characters){             int index = sbSecond.indexOf("" + ch);             if(index != -1){                 sbSecond.deleteCharAt(index);             }else{                 return false;             }         }                 return sbSecond.length()==0 ? true : false;     } }

JUnit Test Case for String Anagram Exmaple

hither is our JUnit tests for all iii 3 methods of AnagramCheck class, nosotros possess got genuinely tested all method amongst like laid of input.
import org.junit.Test; import static org.junit.Assert.*;  /**  * JUnit exam bird to exam diverse anagram programme for diverse String input.  */ public class StringAnagramTest {           @Test     public void testIsAnagram() {         assertTrue(AnagramCheck.isAnagram("word", "wrdo"));         assertTrue(AnagramCheck.isAnagram("mary", "army"));         assertTrue(AnagramCheck.isAnagram("stop", "tops"));         assertTrue(AnagramCheck.isAnagram("boat", "btoa"));         assertFalse(AnagramCheck.isAnagram("pure", "in"));         assertFalse(AnagramCheck.isAnagram("fill", "fil"));         assertFalse(AnagramCheck.isAnagram("b", "bbb"));         assertFalse(AnagramCheck.isAnagram("ccc", "ccccccc"));         assertTrue(AnagramCheck.isAnagram("a", "a"));         assertFalse(AnagramCheck.isAnagram("sleep", "slep"));             }         @Test     public void testIAnagram() {         assertTrue(AnagramCheck.iAnagram("word", "wrdo"));         assertTrue(AnagramCheck.iAnagram("boat", "btoa"));         assertFalse(AnagramCheck.iAnagram("pure", "in"));         assertFalse(AnagramCheck.iAnagram("fill", "fil"));         assertTrue(AnagramCheck.iAnagram("a", "a"));         assertFalse(AnagramCheck.iAnagram("b", "bbb"));         assertFalse(AnagramCheck.iAnagram("ccc", "ccccccc"));         assertFalse(AnagramCheck.iAnagram("sleep", "slep"));             }          @Test     public void testcheckAnagram() {         assertTrue(AnagramCheck.checkAnagram("word", "wrdo"));                assertFalse(AnagramCheck.checkAnagram("b", "bbb"));         assertFalse(AnagramCheck.checkAnagram("ccc", "ccccccc"));         assertTrue(AnagramCheck.checkAnagram("a", "a"));         assertFalse(AnagramCheck.checkAnagram("sleep", "slep"));         assertTrue(AnagramCheck.checkAnagram("boat", "btoa"));         assertFalse(AnagramCheck.checkAnagram("pure", "in"));         assertFalse(AnagramCheck.checkAnagram("fill", "fil"));             } }  Output Testsuite: StringAnagramTest Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.094 sec

Our AnagramCheck bird contains 3 static methods to verify if Strings are anagram or not. First one, takes grapheme array of start String in addition to loop through it, in addition to thus finds that grapheme inwards instant String, in addition to deletes it past times using substring method. If instant String doesn't contains grapheme than method provide imitation immediately. At the halt of exam if instant String is empty than both Strings are anagram because they contains same laid of characters. To ameliorate performance, nosotros possess got checked length at real start of this method, every bit 2 String amongst unlike length tin non hold out anagram of each other. Third method is just same of start one, except, it uses deleteCharAt(int index) method of StringBuilder for deleting characters.

Further Learning
The Coding Interview Bootcamp: Algorithms + Data Structures
Data Structures in addition to Algorithms: Deep Dive Using Java
Write a Java programme to honour nth Fibonacci seat out inwards Java

0 Response to "How To Cheque If 2 String Are Anagram Inwards Coffee - Plan Example"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel