Find Numbers with Even Number of Digits - Array - Easy - LeetCode
💻 coding

Find Numbers with Even Number of Digits - Array - Easy - LeetCode

1 min read 269 words
1 min read
ShareWhatsAppPost on X
  • 1The task is to count how many integers in an array have an even number of digits.
  • 2The solution involves iterating through the array and checking the digit count of each number.
  • 3The algorithm has a time complexity of O(n) and a space complexity of O(1).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The task is to count how many integers in an array have an even number of digits."

Find Numbers with Even Number of Digits - Array - Easy - LeetCode

Given an array nums of integers, return how many of them contain an even number of digits.

Example 1:

Input: nums = [12,345,2,6,7896]

Output: 2

Explanation:

12 contains 2 digits (even number of digits).

345 contains 3 digits (odd number of digits).

2 contains 1 digit (odd number of digits).

6 contains 1 digit (odd number of digits).

7896 contains 4 digits (even number of digits).

Therefore only 12 and 7896 contain an even number of digits.

Example 2:

Input: nums = [555,901,482,1771]

Output: 1

Explanation:

Only 1771 contains an even number of digits.

Constraints:

1 <= nums.length <= 500

1 <= nums[i] <= 10^5

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.Array
{
 public class FindNumbersSoln
 {
 public int FindNumbers(int[] nums)
 {
 int res = 0;
 for (int i = 0; i < nums.Length; i++)
 {
 if (IsEvenCount(nums[i]))
 {
 res++;
 }
 }
 return res;
 }

 private bool IsEvenCount(int num)
 {
 int count = 0;
 while(num != 0)
 {
 count++;
 num = num / 10;
 }

 return count % 2 == 0;
 }
 }
}

Time Complexity: O(n) Considering the length of the digit is finite.

Space Complexity: O(1)

Unit Tests:

using LeetCode.AskGif.Easy.Array;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Text;

namespace CodingUnitTest.Easy.Array
{
 [TestClass]
 public class FindNumbersSolnTests
 {
 [TestMethod]
 public void FindNumbersSoln_First()
 {
 var arr = new int[] { 12, 345, 2, 6, 7896 };
 var output = 2;
 var res = new FindNumbersSoln().FindNumbers(arr);

 Assert.AreEqual(res, output);
 }

 [TestMethod]
 public void FindNumbersSoln_Second()
 {
 var arr = new int[] { 555, 901, 482, 1771 };
 var output = 1;
 var res = new FindNumbersSoln().FindNumbers(arr);

 Assert.AreEqual(res, output);
 }
 }
}

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

AskGif

Published on 10 June 2020 · 1 min read · 269 words

Part of AskGif Blog · coding

You might also like