Skip to content

Commit

Permalink
feat(7-kyu): kata/from-a-to-z (#437)
Browse files Browse the repository at this point in the history
  • Loading branch information
ParanoidUser authored Oct 3, 2023
1 parent 693afc4 commit 2abefd3
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 2 deletions.
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Codewars Handbook ☕️🚀

[![Views statistics +1 👀](https://img.shields.io/badge/dynamic/xml?color=success&label=views&query=//*[name()=%27text%27][3]&url=https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FParanoidUser%2Fcodewars-handbook)](https://hits.seeyoufarm.com/api/count/graph/dailyhits.svg?url=https://github.com/ParanoidUser/codewars-handbook)
[![Solved kata 👌](https://img.shields.io/badge/solved%20kata-1361-red.svg)](https://www.codewars.com/kata/search/java)
[![Solved kata 👌](https://img.shields.io/badge/solved%20kata-1362-red.svg)](https://www.codewars.com/kata/search/java)
[![CI pipeline 🛠](https://img.shields.io/github/actions/workflow/status/ParanoidUser/codewars-handbook/build.yml?branch=main)](https://github.com/ParanoidUser/codewars-handbook/actions/workflows/build.yml)
[![Quality gate 🔎](https://img.shields.io/sonar/alert_status/codewars-handbook?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=codewars-handbook)
[![Let's have a chat! 📞](https://img.shields.io/gitter/room/ParanoidUser/codewars-handbook?color=49c39e)](https://gitter.im/ParanoidUser/codewars-handbook)
Expand All @@ -25,7 +25,7 @@ slug.

| [1 kyu](/kata/1-kyu/index.md) | [2 kyu](/kata/2-kyu/index.md) | [3 kyu](/kata/3-kyu/index.md) | [4 kyu](/kata/4-kyu/index.md) | [5 kyu](/kata/5-kyu/index.md) | [6 kyu](/kata/6-kyu/index.md) | [7 kyu](/kata/7-kyu/index.md) | [8 kyu](/kata/8-kyu/index.md) | [beta](/kata/beta/index.md) | [retired](/kata/retired/index.md) |
|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:-----------------------------:|:---------------------------:|:---------------------------------:|
| - | 1 | 2 | 22 | 40 | 412 | 549 | 202 | 57 | 76 |
| - | 1 | 2 | 22 | 40 | 412 | 550 | 202 | 57 | 76 |

**Note:** The source code is written in Java 17 and may use language features that are incompatible
with Java 8, 11.
Expand Down
20 changes: 20 additions & 0 deletions kata/7-kyu/from-a-to-z/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# [From A to Z](https://www.codewars.com/kata/from-a-to-z "https://www.codewars.com/kata/6512b3775bf8500baea77663")

Given a string indicating a range of letters, return a string which includes all the letters in that
range, *including* the last letter. Note that if the range is given in *capital letters*, return the
string in capitals also!

### Examples

```
"a-z" ➞ "abcdefghijklmnopqrstuvwxyz"
"h-o" ➞ "hijklmno"
"Q-Z" ➞ "QRSTUVWXYZ"
"J-J" ➞ "J"
```

### Notes

- A *hyphen* will separate the two letters in the string.
- You don't need to worry about error handling in this one (i.e. both letters will be the same case
and the second letter will always be after the first alphabetically).
6 changes: 6 additions & 0 deletions kata/7-kyu/from-a-to-z/main/Solution.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface Solution {
static String gimmeTheLetters(String s) {
var az = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
return az.substring(az.indexOf(s.charAt(0)), az.indexOf(s.charAt(2)) + 1);
}
}
25 changes: 25 additions & 0 deletions kata/7-kyu/from-a-to-z/test/SolutionTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

class SolutionTest {
@ParameterizedTest
@CsvSource(textBlock = """
a-z, abcdefghijklmnopqrstuvwxyz
h-o, hijklmno
Q-Z, QRSTUVWXYZ
J-J, J
a-b, ab
a-a, a
g-i, ghi
H-I, HI
y-z, yz
e-k, efghijk
a-q, abcdefghijklmnopq
F-O, FGHIJKLMNO
""")
void sample(String s, String ans) {
assertEquals(ans, Solution.gimmeTheLetters(s));
}
}
1 change: 1 addition & 0 deletions kata/7-kyu/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@
- [Formatting decimal places #1](formatting-decimal-places-number-1)
- [Four/Seven](four-slash-seven)
- [Friends](friends)
- [From A to Z](from-a-to-z)
- [Fun with lists: anyMatch + allMatch](fun-with-lists-anymatch-plus-allmatch)
- [Fun with lists: indexOf](fun-with-lists-indexof)
- [Fun with lists: lastIndexOf](fun-with-lists-lastindexof)
Expand Down

0 comments on commit 2abefd3

Please sign in to comment.