Skip to content

Commit c565fe3

Browse files
committed
2020-12-09 Update: Added "Odd-Even String Sort" and "How many times does it contain?"
1 parent 06b37ba commit c565fe3

File tree

5 files changed

+139
-0
lines changed

5 files changed

+139
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
112112
| Greatest common divisor | [Link](https://www.codewars.com/kata/5500d54c2ebe0a8e8a0003fd) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/GreatestCommonDivisor.java) |
113113
| Highest and Lowest | [Link](https://www.codewars.com/kata/554b4ac871d6813a03000035) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/HighestAndLowest.java) |
114114
| How many arguments | [Link](https://www.codewars.com/kata/5c44b0b200ce187106452139) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/HowManyArguments.java) |
115+
| How many times does it contain? | [Link](https://www.codewars.com/kata/584466950d3bedb9b300001f) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/HowManyTimesDoesItContain.java) |
115116
| Insert dashes | [Link](https://www.codewars.com/kata/55960bbb182094bc4800007b) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/InsertDashes.java) |
116117
| Inspiring Strings | [Link](https://www.codewars.com/kata/5939ab6eed348a945f0007b2) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/InspiringStrings.java) |
117118
| Is valid identifier? | [Link](https://www.codewars.com/kata/563a8656d52a79f06c00001f) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/IsValidIdentifier.java) |
@@ -121,6 +122,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
121122
| max diff - easy | [Link](https://www.codewars.com/kata/588a3c3ef0fbc9c8e1000095) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/MaxDiffEasy.java) |
122123
| Maximum Multiple | [Link](https://www.codewars.com/kata/5aba780a6a176b029800041c) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/MaximumMultiple.java) |
123124
| Maximum Product | [Link](https://www.codewars.com/kata/5a4138acf28b82aa43000117) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/MaximumProduct.java) |
125+
| Odd-Even String Sort | [Link](https://www.codewars.com/kata/580755730b5a77650500010c) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/OddEvenStringSort.java) |
124126
| Ordering the words! | [Link](https://www.codewars.com/kata/55d7e5aa7b619a86ed000070) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/OrderingTheWords.java) |
125127
| Overflowing with joy | [Link](https://www.codewars.com/kata/55186c0f4149dd08a7000006) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/OverflowingWithJoy.java) |
126128
| Parts of a list | [Link](https://www.codewars.com/kata/56f3a1e899b386da78000732) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu7/PartsOfAList.java) |
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu7;
2+
3+
// https://www.codewars.com/kata/584466950d3bedb9b300001f
4+
public class HowManyTimesDoesItContain {
5+
6+
private final String string;
7+
private final char symbol;
8+
9+
public HowManyTimesDoesItContain(String string, char symbol) {
10+
this.string = string;
11+
this.symbol = symbol;
12+
}
13+
14+
public int solution() {
15+
return (int) string.chars().filter(i -> i == symbol).count();
16+
}
17+
18+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu7;
2+
3+
// https://www.codewars.com/kata/580755730b5a77650500010c
4+
public class OddEvenStringSort {
5+
6+
private final String input;
7+
8+
public OddEvenStringSort(String input) {
9+
this.input = input;
10+
}
11+
12+
public String solution() {
13+
StringBuilder evens = new StringBuilder();
14+
StringBuilder odds = new StringBuilder();
15+
for (int i = 0; i < input.length(); i++) {
16+
char symbol = input.charAt(i);
17+
if (i % 2 == 0) {
18+
evens.append(symbol);
19+
} else {
20+
odds.append(symbol);
21+
}
22+
}
23+
return evens
24+
.append(" ")
25+
.append(odds.toString())
26+
.toString();
27+
}
28+
29+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu7;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class HowManyTimesDoesItContainTest {
8+
9+
@Test
10+
public void exampleTests() {
11+
assertEquals(
12+
2,
13+
new HowManyTimesDoesItContain(
14+
"Hello World",
15+
'o'
16+
).solution()
17+
);
18+
assertEquals(
19+
4,
20+
new HowManyTimesDoesItContain(
21+
"Wait isn't it supposed to be cynical?",
22+
'i'
23+
).solution()
24+
);
25+
assertEquals(
26+
4,
27+
new HowManyTimesDoesItContain(
28+
"I'm gona be the best code warrior ever dad",
29+
'r'
30+
).solution()
31+
);
32+
assertEquals(
33+
1,
34+
new HowManyTimesDoesItContain(
35+
"Do you like Harry Potter?",
36+
'?'
37+
).solution()
38+
);
39+
}
40+
41+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu7;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class OddEvenStringSortTest {
8+
9+
@Test
10+
public void testSomething() {
11+
assertEquals(
12+
"Wleclgltihuebredrf ofsheesenasnegrof",
13+
new OddEvenStringSort(
14+
"Wolfeschlegelsteinhausenbergerdorff"
15+
).solution()
16+
);
17+
assertEquals(
18+
"MTINLHENLHENGUAIYAGNL EHOYTROYTROYLTMNLRIY",
19+
new OddEvenStringSort(
20+
"METHIONYLTHREONYLTHREONYGLUTAMINYLARGINYL"
21+
).solution()
22+
);
23+
assertEquals(
24+
"PEMNUTAIRSOISLCVLAOOISS NUOOLRMCOCPCIIOOCNCNOI",
25+
new OddEvenStringSort(
26+
"PNEUMONOULTRAMICROSCOPICSILICOVOLCANOCONIOSIS"
27+
).solution()
28+
);
29+
assertEquals(
30+
"PEDPEDHPPRTYODS SUOSUOYOAAHRIIM",
31+
new OddEvenStringSort(
32+
"PSEUDOPSEUDOHYPOPARATHYROIDISM"
33+
).solution()
34+
);
35+
assertEquals(
36+
"FOCNUIIIIIIIAIN LCIACNHLPLFCTO",
37+
new OddEvenStringSort(
38+
"FLOCCINAUCINIHILIPILIFICATION"
39+
).solution()
40+
);
41+
assertEquals(
42+
"SBEMTGYHC UDRAOLPI",
43+
new OddEvenStringSort(
44+
"SUBDERMATOGLYPHIC"
45+
).solution()
46+
);
47+
}
48+
49+
}

0 commit comments

Comments
 (0)