Skip to content

Commit 20e1e72

Browse files
authored
Add day 2 and day 3 solutions (#345)
* adds Day 2 solution with test in Java * updates README file * adds Day 3 solution with test in Java * updates README file * adds Day 2 solution with test in Java * adds README file * adds Day 2 solution with test * adds proper test * adds day 3 solution * Updates README file * Updates day 3 solution
1 parent db2d954 commit 20e1e72

File tree

4 files changed

+233
-2
lines changed

4 files changed

+233
-2
lines changed

Day2/Java/StringReversal.java

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/* @date 03/10/2020
2+
* @author Prabhat Malhotra
3+
*/
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.junit.jupiter.api.Assertions.*;
8+
9+
/*
10+
* Solution A - String Reversal
11+
*/
12+
public class StringReversal {
13+
public String stringReversal(String randomString) {
14+
byte[] randomStringAsByteArray = randomString.getBytes();
15+
byte[] byteArrayResult = new byte[randomStringAsByteArray.length];
16+
for (int i = 0; i < byteArrayResult.length; i++) {
17+
byteArrayResult[i] = randomStringAsByteArray[randomStringAsByteArray.length - i - 1];
18+
}
19+
return new String(byteArrayResult);
20+
}
21+
}
22+
23+
/*
24+
* Test A - String Reversal
25+
*/
26+
class StringReversalTest {
27+
@Test
28+
public void reverseString() {
29+
String randomString = "prabhat";
30+
String expectedString = "tahbarp";
31+
StringReversal stringReversal = new StringReversal();
32+
System.out.println("The reverse of string " + randomString + " is " + stringReversal.stringReversal(randomString));
33+
assertEquals(expectedString,stringReversal.stringReversal(randomString));
34+
}
35+
}
36+
37+
/*
38+
* Solution B - Palindrome Check
39+
*/
40+
class PalindromeCheck {
41+
public boolean palindromeChek(String randomString) {
42+
StringReversal stringReversal = new StringReversal();
43+
String reversedString = stringReversal.stringReversal(randomString);
44+
return reversedString.equals(randomString);
45+
}
46+
}
47+
48+
/*
49+
* Test B - Palindrome Check
50+
*/
51+
class PalindromeCheckTest {
52+
@Test
53+
public void shouldBePalindrome() {
54+
String randomString = "LOL";
55+
PalindromeCheck palindromeCheck = new PalindromeCheck();
56+
if (palindromeCheck.palindromeChek(randomString)) {
57+
System.out.println(randomString + " is a palindrome");
58+
}
59+
assertTrue(palindromeCheck.palindromeChek(randomString));
60+
}
61+
62+
@Test
63+
public void shouldNotToBePalindrome() {
64+
String randomString = "HOT";
65+
PalindromeCheck palindromeCheck = new PalindromeCheck();
66+
if (!palindromeCheck.palindromeChek(randomString)) {
67+
System.out.println(randomString + " is not a palindrome");
68+
}
69+
assertFalse(palindromeCheck.palindromeChek(randomString));
70+
}
71+
}

Day2/README.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,81 @@ import java.util.Scanner;
254254
}
255255
```
256256

257+
### [Solution by @malhotra1432](./Java/StringReversal.java)
258+
259+
```java
260+
/* @date 03/10/2020
261+
* @author Prabhat Malhotra
262+
*/
263+
264+
import org.junit.jupiter.api.Test;
265+
266+
import static org.junit.jupiter.api.Assertions.*;
267+
268+
/*
269+
* Solution A - String Reversal
270+
*/
271+
public class StringReversal {
272+
public String stringReversal(String randomString) {
273+
byte[] randomStringAsByteArray = randomString.getBytes();
274+
byte[] byteArrayResult = new byte[randomStringAsByteArray.length];
275+
for (int i = 0; i < byteArrayResult.length; i++) {
276+
byteArrayResult[i] = randomStringAsByteArray[randomStringAsByteArray.length - i - 1];
277+
}
278+
return new String(byteArrayResult);
279+
}
280+
}
281+
282+
/*
283+
* Test A - String Reversal
284+
*/
285+
class StringReversalTest {
286+
@Test
287+
public void reverseString() {
288+
String randomString = "prabhat";
289+
StringReversal stringReversal = new StringReversal();
290+
System.out.println("The reverse of string " + randomString + " is " + stringReversal.stringReversal(randomString));
291+
}
292+
}
293+
294+
/*
295+
* Solution B - Palindrome Check
296+
*/
297+
class PalindromeCheck {
298+
public boolean palindromeChek(String randomString) {
299+
StringReversal stringReversal = new StringReversal();
300+
String reversedString = stringReversal.stringReversal(randomString);
301+
return reversedString.equals(randomString);
302+
}
303+
}
304+
305+
/*
306+
* Test B - Palindrome Check
307+
*/
308+
class PalindromeCheckTest {
309+
@Test
310+
public void shouldBePalindrome() {
311+
String randomString = "LOL";
312+
PalindromeCheck palindromeCheck = new PalindromeCheck();
313+
if (palindromeCheck.palindromeChek(randomString)) {
314+
System.out.println(randomString + " is a palindrome");
315+
}
316+
assertTrue(palindromeCheck.palindromeChek(randomString));
317+
}
318+
319+
@Test
320+
public void shouldNotToBePalindrome() {
321+
String randomString = "HOT";
322+
PalindromeCheck palindromeCheck = new PalindromeCheck();
323+
if (!palindromeCheck.palindromeChek(randomString)) {
324+
System.out.println(randomString + " is not a palindrome");
325+
}
326+
assertFalse(palindromeCheck.palindromeChek(randomString));
327+
}
328+
}
329+
330+
```
331+
257332

258333
## C++ Implementation
259334

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/* @date 03/10/2020
2+
* @author Prabhat Malhotra
3+
*/
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
/*
8+
* Solution
9+
*/
10+
public class HammingDistanceSolution {
11+
12+
public String calculateHammingDistance(String firstString, String secondString) {
13+
int totalHammingDistance = 0;
14+
byte[] aByteArray = firstString.getBytes();
15+
byte[] bByteArray = secondString.getBytes();
16+
if (firstString.length() == secondString.length()) {
17+
for (int i = 0; i < aByteArray.length; i++) {
18+
if (aByteArray[i] != bByteArray[i]) {
19+
totalHammingDistance += 1;
20+
}
21+
}
22+
return "Hamming distance between " + firstString + " and " + secondString + " is " + totalHammingDistance;
23+
}
24+
return "Strings are not equal in length";
25+
}
26+
27+
}
28+
29+
/*
30+
* Test
31+
*/
32+
class HammingDistanceSolutionTest {
33+
@Test
34+
public void shouldCalculateHammingDistance() {
35+
String firstString = "karolin";
36+
String secondString = "kathrin";
37+
HammingDistanceSolution hammingDistanceSolution = new HammingDistanceSolution();
38+
System.out.println(hammingDistanceSolution.calculateHammingDistance(firstString, secondString));
39+
}
40+
}

Day3/README.md

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,53 @@ public class HammingDistance {
9797
}
9898
```
9999

100+
### [Solution by @malhotra1432](./Java/HammingDistanceSolution.java)
101+
102+
```java
103+
/* @date 03/10/2020
104+
* @author Prabhat Malhotra
105+
*/
106+
107+
import org.junit.jupiter.api.Test;
108+
109+
/*
110+
* Solution
111+
*/
112+
public class HammingDistanceSolution {
113+
114+
public String calculateHammingDistance(String firstString, String secondString) {
115+
int totalHammingDistance = 0;
116+
byte[] aByteArray = firstString.getBytes();
117+
byte[] bByteArray = secondString.getBytes();
118+
if (firstString.length() == secondString.length()) {
119+
for (int i = 0; i < aByteArray.length; i++) {
120+
if (aByteArray[i] != bByteArray[i]) {
121+
totalHammingDistance += 1;
122+
}
123+
}
124+
return "Hamming distance between " + firstString + " and " + secondString + " is " + totalHammingDistance;
125+
}
126+
return "Strings are not equal in length";
127+
}
128+
129+
}
130+
131+
/*
132+
* Test
133+
*/
134+
class HammingDistanceSolutionTest {
135+
@Test
136+
public void shouldCalculateHammingDistance() {
137+
String firstString = "karolin";
138+
String secondString = "kathrin";
139+
HammingDistanceSolution hammingDistanceSolution = new HammingDistanceSolution();
140+
System.out.println(hammingDistanceSolution.calculateHammingDistance(firstString, secondString));
141+
}
142+
}
143+
144+
145+
```
146+
100147
## C++ Implementation
101148

102149
### [hamming.cpp](./C++/hamming.cpp)
@@ -389,8 +436,6 @@ public class HammingDistance {
389436
}
390437

391438

392-
393-
394439
## Why Hamming Distance?
395440

396441
The #1 reason for not being successful is inconsistency, and it is a common trend that people start something and on give up on the third day itself, and one of the major reasons behind that is that they find it difficult to continue. 

0 commit comments

Comments
 (0)