Problem 1678. Count consecutive 0's in between values of 1
So you have some vector that contains 1's and 0's, and the goal is to return a vector that gives the number of 0's between each one. for example:
Input = [0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0]
Output = [1 3 1 0 0 3 1 0 2]
Solution Stats
Problem Comments
-
5 Comments
My opinion is that the answers for this problem are wrong. The problem is asking for counting zeros between values 1. So for example for Input = [0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0] the correct Output is [3 1 0 0 3 1 0] and not [1 3 1 0 0 3 1 0 2]. Reasoning that there is no 1 at the beginning and at the end of the vector and so the beginning and end zeros should not be counted.
How about adding a test case in which vector x starts with a 1, such as x = [1 0 0 1 0] ? (Several of the submitted/approved solutions would give the answer as y = [0 2 1] instead of y = [2 1] . )
The starting or the trailing zeros in the array shouldn't be counted.
I think your first test case is wrong: when x = [1], then there are no pairs of consecutive ones, and the proper answer is y = [] rather than y = [0]. In contrast, y = [0] is correct when x = [1 1], where there are two ones that have no zeros in between.
I think you should revise your test cases.
The question is to find the number of zeroes between consecutive ones. Leading and trailing zeroes in x should not count.
E.g.
x=[1] -> y=[]
x=[0] -> y=[]
x=[0 1] -> y=[]
x =[1 0] -> y=[]
x = [0 1 0] -> y=[]
but
x = [1 1] -> y=[0]
x = [1 1 1] -> y=[0 0]
x = [1 0 1] -> y=[1]
etc.
Solution Comments
Show commentsProblem Recent Solvers433
Suggested Problems
-
18643 Solvers
-
4549 Solvers
-
Find a subset that divides the vector into equal halves
387 Solvers
-
5150 Solvers
-
894 Solvers
More from this Author17
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!