Skip to content

Commit 4e5f589

Browse files
committed
1 parent a55574c commit 4e5f589

File tree

3 files changed

+99
-2
lines changed

3 files changed

+99
-2
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}

src/main/java/main/main.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package main;
22

3+
import hackerrank.java.Anagrams;
34
import hackerrank.java.CompareSubstrings;
5+
import hackerrank.string.Anagram;
6+
47
import 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
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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+
}

0 commit comments

Comments
 (0)