File tree Expand file tree Collapse file tree 3 files changed +99
-2
lines changed
test/java/hackerranktest/java Expand file tree Collapse file tree 3 files changed +99
-2
lines changed Original file line number Diff line number Diff line change 1+ package hackerrank .java ;
2+
3+ import hackerrank .java .Anagrams ;
4+
5+ import java .util .Arrays ;
6+
7+ public class Anagrams {
8+ String first ;
9+ String second ;
10+
11+ public Anagrams (String first , String second ) {
12+ this .first = first ;
13+ this .second = second ;
14+ }
15+
16+ public boolean isAnagram () {
17+
18+ if (first .length () != second .length ())
19+ return false ;
20+
21+ // sort
22+ char [] firstCharArr = first .toUpperCase ().toCharArray ();
23+ char [] secondCharArr = second .toUpperCase ().toCharArray ();
24+ Arrays .sort (firstCharArr );
25+ Arrays .sort (secondCharArr );
26+
27+ // compare all the characters
28+ for (int i =0 ; i <first .length (); i ++){
29+
30+ if ( firstCharArr [i ] != secondCharArr [i ])
31+ return false ;
32+ }
33+
34+ return true ;
35+ }
36+ }
Original file line number Diff line number Diff line change 11package main ;
22
3+ import hackerrank .java .Anagrams ;
34import hackerrank .java .CompareSubstrings ;
5+ import hackerrank .string .Anagram ;
6+
47import java .util .Scanner ;
58
69/**
@@ -17,16 +20,30 @@ public class main {
1720 * @param args
1821 */
1922 public static void main (final String [] args ) {
23+ // twoStrings();
24+ oneStringOneInt ();
25+ }
2026
27+ public static void oneStringOneInt () {
2128 try (Scanner scan = new Scanner (System .in )) {
2229 final String randomString = scan .next ();
2330 final int substringLength = scan .nextInt ();
2431
2532 final CompareSubstrings compareSubstrings =
2633 new CompareSubstrings (randomString , substringLength );
2734
28- compareSubstrings .createSubstrings ();
29-
35+ System .out .println ( compareSubstrings .createSubstrings () );
3036 }
3137 }
38+
39+ public static void twoStrings () {
40+ Scanner scan = new Scanner (System .in );
41+ String a = scan .next ();
42+ String b = scan .next ();
43+ scan .close ();
44+ Anagrams obj = new Anagrams (a , b );
45+
46+ boolean ret = obj .isAnagram ();
47+ System .out .println ( (ret ) ? "Anagrams" : "Not Anagrams" );
48+ }
3249}
Original file line number Diff line number Diff line change 1+ package hackerranktest .java ;
2+
3+ import hackerrank .java .Anagrams ;
4+ import org .junit .jupiter .api .Assertions ;
5+ import org .junit .jupiter .params .ParameterizedTest ;
6+ import org .junit .jupiter .params .provider .CsvSource ;
7+
8+ /**
9+ *
10+ * Problem
11+ * https://www.hackerrank.com/challenges/java-anagrams/problem
12+ *
13+ */
14+ public class AnagramTest {
15+
16+ @ ParameterizedTest
17+ @ CsvSource ({
18+ "anagram, margana" ,
19+ "don, don" ,
20+ "Hello, hello"
21+ })
22+ void givenAllAnagramsShouldBeTrue (
23+ String first , String second ) {
24+
25+ Anagrams obj = new Anagrams (
26+ first , second );
27+
28+ Assertions .assertTrue (obj .isAnagram ());
29+ }
30+
31+ @ ParameterizedTest
32+ @ CsvSource ({
33+ "test, testt" ,
34+ "don, ddd"
35+ })
36+ void givenAllNotAnagramsShouldBeFalse (
37+ String first , String second ) {
38+
39+ Anagrams obj = new Anagrams (
40+ first , second );
41+
42+ Assertions .assertFalse (obj .isAnagram ());
43+ }
44+ }
You can’t perform that action at this time.
0 commit comments