博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codewars第九天–Length of missing array
阅读量:4303 次
发布时间:2019-05-27

本文共 1370 字,大约阅读时间需要 4 分钟。

Codewars第九天–Length of missing array

题目描述:

你得到一个数组数组。
如果按长度对数组进行排序,您将看到它们的长度值是连续的。
但是缺少一个阵列!
您必须编写一个返回缺失数组长度的方法。
例如:

Example:[[1, 2], [4, 5, 1, 1], [1], [5, 6, 7, 8, 9]] --> 3

如果数组数组为null / nil或为空,则该方法应返回0。

当数组中的数组为null或为空时,该方法也应返回0!

总会有一个缺少的元素,它的长度总是在给定的数组之间。
代码如下:这里开始困扰我的是数组合法性判断,后来发现值需要使用一个bool(i) 就可以判断数组的合法性了。
这里将输入中的每一个数组的长度存入一个列表中并排序,然后判断哪一个数不在列表中即可。
这样会多使用一个列表,同时有两个for 循环。挺复杂的。通过了所以的测试用例。

def get_length_of_missing_array(array_of_arrays):    len_array = []    if len(array_of_arrays) == None:        return 0    else:        for i in array_of_arrays:            if bool(i) != True:                return 0              else:                len_array.append(len(i))        len_array = sorted(len_array)        if len(len_array) == 0:            return 0        else:            for j in range(len_array[0], len_array[-1]):                if j not in len_array:                     return j

查看别人的solution 后发现了一个最聪明的嘴阀,如下,两行代码就可以解决该问题。

这里使用了一个all() 函数:all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 用于判断数组的合法性。
然后使用了一个map() 函数对每一个数组进行求长度。同样的存入一个数组lns 中。
最后判断lns 的合法性。他求解的方法是将lns 应该存在的所以数组的长度进行求和再减去缺失的。这样就可以直接得到结果。避免了for 循环。

元素除了是 0、空、FALSE 外都算 TRUE。

def get_length_of_missing_array(a):    lns = a and all(a) and list(map(len, a))    #list(map(len,a))可以直接构建一个a中每一个数组长度的列表。    return bool(lns) and sum(range(min(lns), max(lns) + 1)) - sum(lns)

转载地址:http://fqmws.baihongyu.com/

你可能感兴趣的文章
IP分类以及子网掩码
查看>>
Servlet-HttpServletRequestWrapper
查看>>
SpringMvc-HandlerMethodArgumentResolver
查看>>
SpringMvc-PropertyEditor接口和@InitBinder注解
查看>>
Quartz-集群
查看>>
Eclipse-习惯设置
查看>>
Eclipse-Mybatis-generatorConfig.xml
查看>>
SpringBoot-Feign
查看>>
Eclipse-maven项目不将resources下的文件打到classpath下
查看>>
SpringMvc-ResponseBodyAdvice接口与@ControllerAdvice注解
查看>>
Java的匿名内部类
查看>>
浅谈异常与恋爱
查看>>
java中的反射总结
查看>>
java中的泛型总结
查看>>
java中的正则操作总结
查看>>
java中的IO操作总结(一)
查看>>
java中的IO操作总结(二)
查看>>
java中的IO操作总结(三)
查看>>
java中的IO操作总结(四)
查看>>
Java 内部类种类及使用解析
查看>>