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 1
1
package main ;
2
2
3
+ import hackerrank .java .Anagrams ;
3
4
import hackerrank .java .CompareSubstrings ;
5
+ import hackerrank .string .Anagram ;
6
+
4
7
import java .util .Scanner ;
5
8
6
9
/**
@@ -17,16 +20,30 @@ public class main {
17
20
* @param args
18
21
*/
19
22
public static void main (final String [] args ) {
23
+ // twoStrings();
24
+ oneStringOneInt ();
25
+ }
20
26
27
+ public static void oneStringOneInt () {
21
28
try (Scanner scan = new Scanner (System .in )) {
22
29
final String randomString = scan .next ();
23
30
final int substringLength = scan .nextInt ();
24
31
25
32
final CompareSubstrings compareSubstrings =
26
33
new CompareSubstrings (randomString , substringLength );
27
34
28
- compareSubstrings .createSubstrings ();
29
-
35
+ System .out .println ( compareSubstrings .createSubstrings () );
30
36
}
31
37
}
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
+ }
32
49
}
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