Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4369a68

Browse files
1295: Find Numbers with Even Number of Digits
1 parent e4bb72e commit 4369a68

File tree

4 files changed

+74
-0
lines changed

4 files changed

+74
-0
lines changed

‎README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ My solutions to LeetCode problems in Kotlin.
2727
| [773](https://leetcode.com/problems/sliding-puzzle/) | [Sliding Puzzle](src/main/kotlin/com/schmoczer/leetcode/_0773/SlidingPuzzle.kt) | Hard |
2828
| [796](https://leetcode.com/problems/rotate-string/) | [Rotate String](src/main/kotlin/com/schmoczer/leetcode/_0796/RotateString.kt) | Easy |
2929
| [876](https://leetcode.com/problems/middle-of-the-linked-list/) | [Middle of the Linked List](src/main/kotlin/com/schmoczer/leetcode/_0876/MiddleOfTheLinkedList.kt) | Easy |
30+
| [1295](https://leetcode.com/problems/find-numbers-with-even-number-of-digits/) | [Find Numbers with Even Number of Digits](src/main/kotlin/com/schmoczer/leetcode/_1295/FindNumbersWithEvenNumberOfDigits.kt) | Easy |
3031
| [1342](https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/) | [Number of Steps to Reduce a Number to Zero](src/main/kotlin/com/schmoczer/leetcode/_1342/NumberOfStepsToReduceANumberToZero.kt) | Easy |
3132
| [1480](https://leetcode.com/problems/running-sum-of-1d-array/) | [Running Sum of 1d Array](src/main/kotlin/com/schmoczer/leetcode/_1480/RunningSumOf1dArray.kt) | Easy |
3233
| [1574](https://leetcode.com/problems/shortest-subarray-to-be-removed-to-make-array-sorted/) | [Shortest Subarray to be Removed to Make Array Sorted](src/main/kotlin/com/schmoczer/leetcode/_1574/ShortestSubarray.kt) | Medium |
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.schmoczer.leetcode._1295
2+
3+
class FindNumbersWithEvenNumberOfDigits {
4+
// Runtime 1ms Beats 100.00%
5+
fun findNumbers(nums: IntArray): Int {
6+
var result = 0
7+
for (number in nums) {
8+
var digitCount = 0
9+
var current = number
10+
while (current > 0) {
11+
current = current / 10
12+
digitCount++
13+
}
14+
15+
if (digitCount % 2 == 0) {
16+
result++
17+
}
18+
}
19+
return result
20+
}
21+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Find Numbers with Even Number of Digits
2+
3+
Given an array `nums` of integers, return how many of them contain an even number of digits.
4+
5+
Example 1:
6+
7+
> Input: nums = [12,345,2,6,7896]
8+
>
9+
> Output: 2
10+
11+
Example 2:
12+
13+
> Input: nums = [555,901,482,1771]
14+
>
15+
> Output: 1
16+
17+
Constraints:
18+
19+
- `1 <= nums.length <= 500`
20+
- `1 <= nums[i] <= 10^5`
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.schmoczer.leetcode._1295
2+
3+
import org.junit.jupiter.api.Assertions.assertEquals
4+
import org.junit.jupiter.api.BeforeEach
5+
import org.junit.jupiter.params.ParameterizedTest
6+
import org.junit.jupiter.params.provider.Arguments
7+
import org.junit.jupiter.params.provider.MethodSource
8+
9+
class FindNumbersWithEvenNumberOfDigitsTest {
10+
private companion object {
11+
@JvmStatic
12+
fun nums() = listOf(
13+
Arguments.of(intArrayOf(12, 345, 2, 6, 7896), 2),
14+
Arguments.of(intArrayOf(555, 901, 482, 1771), 1),
15+
)
16+
}
17+
18+
private lateinit var sut: FindNumbersWithEvenNumberOfDigits
19+
20+
@BeforeEach
21+
fun setUp() {
22+
sut = FindNumbersWithEvenNumberOfDigits()
23+
}
24+
25+
@ParameterizedTest(name = "{0} has {1} items with a even number of digits")
26+
@MethodSource("nums")
27+
fun `returns the count of evenly numbered digits`(input: IntArray, expected: Int) {
28+
val result = sut.findNumbers(input)
29+
30+
assertEquals(expected, result)
31+
}
32+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /