[leetcode] (Array101) 1295. Find Numbers with Even number of Digits

1295. Find Numbers with Even number of Digits

https://leetcode.com/problems/find-numbers-with-even-number-of-digits/editorial/

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

 

Answers

mine

class Solution {
    public int findNumbers(int[] nums) {
        
        if (nums == null) {
            throw new IllegalArgumentException();
        }
        
        int count = 0;
        
        for (int num : nums) {
            if (Integer.toString(num).length() % 2 == 0 ) count++;
        }
        
        return count;
    }
}

 

 

https://leetcode.com/problems/find-numbers-with-even-number-of-digits/solutions/459489/java-solution-with-100-better-space-and-time

class Solution {
    public int findNumbers(int[] nums) {
        
        int count = 0;
        
        for(int i = 0 ; i < nums.length; i++){
            
            if((nums[i] > 9 && nums[i] < 100)
            || (nums[i] > 999 && nums[i] < 10000)
            || nums[i] == 100000){
                count++;
            }
        }
        
        return count;
        
    }
}

https://leetcode.com/problems/find-numbers-with-even-number-of-digits/solutions/457571/python3-c-11-c-20-java-haskell-clojure-rust-scala-elixir-apl-solutions

public int findNumbers(int[] nums) {
     return (int) Arrays.stream(nums)
                        .map(e -> String.valueOf(e).length())
                        .filter(e -> e % 2 == 0)
                        .count();
}

Things I Learned

Integer.toString(num)

Arrays.stream().map().filter().count()