Hello About Blog Projects Bookmarks Ideas

2021-10-05

试题

观测以下数组规律并写出一个输出结果的函数。不作任何限制。

// 输入 => 输出
[1, 1, 1, 1, 0, 1, 1, 0] => [4, 2]
[1, 1, 1, 0, 1, 0, 1, 1] => [3, 1, 2]

我的解题

思路

我将 0 看作是一个分割点。

解题代码

1.以处理数组的方式

此解法应该是理想型解法,毕竟是面试题

定义一个二维空数组 a: number[][] 备用。 循环数组,如果当前是 1 则推送到 a ,如果当前是 0 则推一个空数组到 a ,最后返回每个数组的长度,过滤空值。

如果描述的不清楚,可以展开下面的 Toggle 查看代码和输出结果示例。

2.以处理字符串的方式

这是最简单直接的方式。