1295. Find Numbers with Even Number of Digits

LeetCode easy original: C# #array #csharp #easy #leetcode #search
El texto de la tarea se traduce del ruso para el idioma seleccionado. El código no cambia.

Дан arreglo чисел nums. return количество чисел в arregloе, которые содержат четное количество цифр.

Ejemplo:

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.

C# solución

coincidente/original
public class Solution {
    private bool HasEvenDigits(int num) {
        int digitCount = 0;
        while (num > 0) {
            digitCount++;
            num /= 10;
        }
        return (digitCount & 1) == 0;
    }
    public int FindNumbers(int[] nums) {
        int evenDigitCount = 0;
        foreach (int num in nums) {
            if (HasEvenDigits(num)) {
                evenDigitCount++;
            }
        }
        return evenDigitCount;
    }
}

C++ solución

borrador automático, revisar antes de enviar
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    private bool HasEvenDigits(int num) {
        int digitCount = 0;
        while (num > 0) {
            digitCount++;
            num /= 10;
        }
        return (digitCount & 1) == 0;
    }
    public int FindNumbers(vector<int>& nums) {
        int evenDigitCount = 0;
        foreach (int num in nums) {
            if (HasEvenDigits(num)) {
                evenDigitCount++;
            }
        }
        return evenDigitCount;
    }
}

Java solución

coincidente/original
class Solution {
    private boolean hasEvenDigits(int num) {
        int digitCount = 0;
        while (num > 0) {
            digitCount++;
            num /= 10;
        }
        return (digitCount & 1) == 0;
    }

    public int findNumbers(int[] nums) {
        int evenDigitCount = 0;
        for (int num : nums) {
            if (hasEvenDigits(num)) {
                evenDigitCount++;
            }
        }
        return evenDigitCount;
    }
}

JavaScript solución

coincidente/original
class Solution {
    hasEvenDigits(num) {
        let digitCount = 0
        while (num > 0) {
            digitCount++
            num = Math.floor(num / 10)
        }
        return (digitCount & 1) === 0
    }

    findNumbers(nums) {
        let evenDigitCount = 0
        for (let num of nums) {
            if (this.hasEvenDigits(num)) {
                evenDigitCount++
            }
        }
        return evenDigitCount
    }
}

Algorithm

Определите вспомогательную функцию hasEvenDigits, которая принимает num в качестве Entradaных данных и returns true, если количество цифр четное, иначе returns false.

Внутри функции hasEvenDigits. Инициализируйте переменную digitCount значением 0. Пока num не равно нулю: Увеличивайте digitCount на 1. Делите num на 10. Возвращайте digitCount & 1 == 0.

В функции findNumbers. Инициализируйте переменную evenDigitCount значением 0. Для каждого числа num в arregloе nums, проверяйте, returns ли hasEvenDigits(num) значение true. Если да, увеличивайте evenDigitCount на 1. Возвращайте evenDigitCount.

😎

Vacantes para esta tarea

Se muestran vacantes activas con etiquetas coincidentes.

Todas las vacantes
Todavía no hay vacantes activas.