Counting sheep

kata programming

آرایه/لیستی از گوسفندان را در نظر بگیرید که ممکن است برخی از گوسفندان در محل خود گم شده باشند. ما به یک تابع نیاز داریم که تعداد گوسفندهای موجود در آرایه را شمارش کند (true به معنی موجود است).

برای مثال:

[true,  true,  true,  false,
  true,  true,  true,  true ,
  true,  false, true,  false,
  true,  false, false, true ,
  true,  true,  true,  true ,
  false, false, true,  true]

جواب درست 17 است.

توجه: فراموش نکنید که مقادیر null/undefined را بررسی کنید.


Description:

Consider an array/list of sheep where some sheep may be missing from their place. We need a function that counts the number of sheep present in the array (true means present).

For example,

[true,  true,  true,  false,
  true,  true,  true,  true ,
  true,  false, true,  false,
  true,  false, false, true ,
  true,  true,  true,  true ,
  false, false, true,  true]

The correct answer would be 17.

Hint: Don’t forget to check for bad values like null/undefined


import java.util.Arrays;
import java.util.stream.Collectors;

public class Counter {
  public int countSheeps(Boolean[] arrayOfSheeps) {
    return Arrays.stream(arrayOfSheeps).filter(s -> s != null && s.equals(true)).collect(Collectors.toList()).size();
  }
}
public class Counter {
  public int countSheeps(Boolean[] arrayOfSheeps) {
    int counter = 0;
    for (Boolean present : arrayOfSheeps) {
      if (present != null && present) {
        counter += 1;
      }
    }
    return counter;
  }
}
import java.util.Arrays;
import java.util.Collections;

public class Counter {
  public int countSheeps(Boolean[] arrayOfSheeps) {
    return Collections.frequency(Arrays.asList(arrayOfSheeps), true);
  }
}
import java.util.*;
public class Counter {
  public int countSheeps(Boolean[] arrayOfSheeps) {
     return (int)Arrays.stream(arrayOfSheeps)
                 .filter(Objects::nonNull)
                 .filter(Boolean::booleanValue).count();
  }
}

دیدگاهتان را بنویسید