Skip to content

Commit aefa582

Browse files
* docs: kata description * feat: kata/char-code-calculation --------- Co-authored-by: ParanoidUser <5120290+ParanoidUser@users.noreply.github.com>
1 parent 0331884 commit aefa582

File tree

4 files changed

+54
-0
lines changed

4 files changed

+54
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# [Char Code Calculation](https://www.codewars.com/kata/char-code-calculation "https://www.codewars.com/kata/57f75cc397d62fc93d000059")
2+
3+
Given a string, turn each character into its ASCII character code and join them together to create a number - let's call this number
4+
`total1`:
5+
6+
```
7+
'ABC' --> 'A' = 65, 'B' = 66, 'C' = 67 --> 656667
8+
```
9+
10+
Then replace any incidence of the number `7` with the number `1`, and call this number 'total2':
11+
12+
```
13+
total1 = 656667
14+
^
15+
total2 = 656661
16+
^
17+
```
18+
19+
Then return the difference between the sum of the digits in `total1` and `total2`:
20+
21+
```
22+
(6 + 5 + 6 + 6 + 6 + 7)
23+
- (6 + 5 + 6 + 6 + 6 + 1)
24+
-------------------------
25+
6
26+
```
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import static org.apache.commons.lang3.StringUtils.countMatches;
2+
3+
interface Kata {
4+
static int calc(String x) {
5+
return 6 * x.chars().map(i -> countMatches(i + "", "7")).sum();
6+
}
7+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import static org.junit.jupiter.api.Assertions.assertEquals;
2+
3+
import org.junit.jupiter.params.ParameterizedTest;
4+
import org.junit.jupiter.params.provider.CsvSource;
5+
6+
class CharCodeCalculationTest {
7+
@ParameterizedTest
8+
@CsvSource(textBlock = """
9+
M, 12
10+
jaam, 12
11+
abcdef, 6
12+
ifkhchlhfd, 6
13+
aaaaaddddr, 30
14+
jfmgklf8hglbe, 6
15+
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ, 96
16+
""")
17+
void sample(String s, int expected) {
18+
assertEquals(expected, Kata.calc(s));
19+
}
20+
}

kata/7-kyu/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
- [Ch4113ng3](ch4113ng3 "59e9f404fc3c49ab24000112")
8080
- [Change two-dimensional array](change-two-dimensional-array "581214d54624a8232100005f")
8181
- [Changing letters](changing-letters "5831c204a31721e2ae000294")
82+
- [Char Code Calculation](char-code-calculation "57f75cc397d62fc93d000059")
8283
- [Character Counter](character-counter "56786a687e9a88d1cf00005d")
8384
- [Check contained matrix](check-contained-matrix "5a46179ce626c5ef8d000024")
8485
- [Check three and two](check-three-and-two "5a9e86705ee396d6be000091")

0 commit comments

Comments
 (0)