问题描述:
在一组数列中,比如数列[1,2,3,4,5]五个数中(逗号间隔,5个数为一组), 根据所勾选的条件进行筛选,求数列的首位是否包含奇数或者是否偶数,或者末位是否包含奇数或者偶数,或者奇数偶数同时存在,或者奇数偶数都不存在。
如下图所示:
条件是:
龙头:奇偶是单选的,龙头就是首位数
凤尾:奇偶是单选的,凤尾就是末位数
出现:0个或者1个或者2个,可以多选,就是改组数列中所包含的个数
要求算法是:
当输入的一组数列,由从小到大排列
1、比如数列[1,2,3,4,5]这5个数字中,首位和末位都是奇数,则勾选了首位奇数,末位是奇数,出现1个,则该数列不符合,因为,出现了两个奇数。
2、再比如,如上数列,勾选了出现2个时,则符合,因为所勾选的首位和末位都是奇数,那么就有2个符合了。
3、比如数列[2,3,4,5,6]这5个数字中,因为首位和末位都是偶数,如果勾选的是两个奇数,或者一个偶数一个奇数,则都不符合,只有勾选了出现2个,才符合,如果此时勾选的是0个,因为勾选的是两个奇数,但出现的数列首位和末位都是偶数,并且勾选的是出现0个,那么则就是有效。
也就是说,该数列是否有效,则要根据所勾选的条件来判断,勾选的,就是要数列中所存在的,勾选0则为数列中不存在的,
求js写法,不需要实现大小排序等,只需要假设输入一个数列,实现勾选的条件筛选该数列是否为有效数列即可!
看了半天,没明白这个有啥难得。
整理一下,成为这样
测试条件一,龙头,true or false
测试条件二,凤尾,true or false
计算有几个true,与“出现”进行比较,相等的话,数列符合条件,不等的话,数列不符合条件。
伪代码如下
totalcount=0
if test1=true then
totalcount=totalcocunt+1
end if
if test2=true then
totalcount=totalcount+1
end if
if totalcount=occurTest then
return true
else
return false
end if