python进阶练习题:频率分析水桶【难度:2级】:
说明:
给定一个输入数组矩阵的正整数(arr
)时,目标是返回的输出数组矩阵,其中每个索引代表输入数组中的元素的出现次数的数量(频率).
更具体地,输出数组矩阵的每个索引处的元素将包含该索引出现量-的倍整数数组(桶).
否则,槽空值(JavaScript中,爪哇),无的(Python)的尼尔斯(红宝石),或NULL的(C / C ++)在适当情况下.一个有效的数组总是会提供.
如果[1,2,3,4,4,5,5,5]的数组传递中,所期望的输出应为:[NULL,[1,2,3],[4],[5], NULL,NULL,NULL,NULL,NULL.
说明:
// bucketize(ARR)======> outputArray
bucketize([1,2,3,4,4,5,5,5])==> [NULL,[1,2,3],[4],[5],NULL,NULL, NULL,NULL,NULL]
// bucketize(ARR)======> outputArray
bucketize({1,2,3,4,4,5,5,5})======> {NULL,{1,2,3},{4},{5},NULL,NULL, NULL,NULL,NULL}
ç
// bucketize(ARR)======> outputArray
bucketize({1,2,3,4,4,5,5,5})==> {NULL,{1,2,3},{4},{5},NULL,NULL, NULL,NULL,NULL}
// bucketize(ARR)======> outputArray
bucketize({1,2,3,4,4,5,5,5})==> {NULL,{1,2,3},{4},{5},NULL,NULL, NULL,NULL,NULL}
# bucketize(ARR)======> outputArray
bucketize(1,2,3,4,4,5,5,5)==> [无,[1,2,3],[4],[5],无,无,无,无,无]
元件不能出现0次,所以空放置在outputArray [0].元件1,2,和3中出现一次.这就是为什么他们位于outputArray [1].注意元件以数组矩阵组合在一起并且以升序排列.元件4出现两次.这就是为什么它位于outputArray [2].元件5出现三次.这就是为什么它位于outputArray [3].
虽然整数可能已经出现了可能四,五,六,七,八次,这是不适合这个特殊的情况为例.这就是为什么在outputArray元素[4],outputArray [5],outputArray [6],outputArray [7],和outputArray [8]都是空值.
例子:
bucketize([2,2,4,4,6,6,9,9,9,9])===> [NULL,NULL,[2,4,6],NULL,[9],NULL,NULL ,NULL,NULL,NULL,NULL];
bucketize([3,3,3,3,2])=============> [NULL,[2],NULL,NULL,[3],空].
bucketize([5,5,5,5,5])=============> [NULL,NULL,NULL,NULL,NULL,[5]];
bucketize([77,3,40,40,40])======> [NULL,[3.77],NULL,[40],NULL,NULL];
bucketize([16,7,5,3,6,23])======> [NULL,[3,5,6,7,16,23],NULL,NULL,NULL,NULL , 空值];
bucketize({2,2,4,4,6,6,9,9,9,9})===> {NULL,NULL,{2,4,6},NULL,{9},NULL,NULL ,NULL,NULL,NULL,NULL};
bucketize({3,3,3,3,2})=============> {NULL,{2},NULL,NULL,{3},NULL};
bucketize({5,5,5,5,5})=============> {NULL,NULL,NULL,NULL,NULL,{5}};
bucketize({77,3,40,40,40})======> {NULL,{3.77},NULL,{40},NULL,NULL};
bucketize({16,7,5,3,6,23})======> {NULL,{3,5,6,7,16,23},NULL,NULL,NULL,NULL , 空值};
ç
bucketize({2,2,4,4,6,6,9,9,9,9})===> {NULL,NULL,{2,4,6},NULL,{9},NULL,NULL ,NULL,NULL,NULL,NULL};
bucketize({3,3,3,3,2})=============> {NULL,{2},NULL,NULL,{3},NULL};
bucketize({5,5,5,5,5})=============> {NULL,NULL,NULL,NULL,NULL,{5}};
bucketize({77,3,40,40,40})======> {NULL,{3.77},NULL,{40},NULL,NULL};
bucketize({16,7,5,3,6,23})======> {NULL,{3,5,6,7,16,23},NULL,NULL,NULL,NULL , 空值};
bucketize({2,2,4,4,6,6,9,9,9,9})===> {NULL,NULL,{2,4,6},NULL,{9},NULL,NULL ,NULL,NULL,NULL,NULL};
bucketize({3,3,3,3,2})=============> {NULL,{2},NULL,NULL,{3},NULL};
bucketize({5,5,5,5,5})=============> {NULL,NULL,NULL,NULL,NULL,{5}};
bucketize({77,3,40,40,40})======> {NULL,{3.77},NULL,{40},NULL,NULL};
bucketize({16,7,5,3,6,23})======> {NULL,{3,5,6,7,16,23},NULL,NULL,NULL,NULL , 空值};
bucketize(2,2,4,4,6,6,9,9,9,9)==> [无,无,[2,4,6],无,[9],无,无,无,无,无,无]
bucketize(3,3,3,3,2)============> [无,[2],无,无,[3],无]
bucketize(5,5,5,5,5)============> [无,无,无,无,无,[5]]
bucketize(77,3,40,40,40)======> [无,[3.77],无,[40],无,无]
bucketize(16,7,5,3,6,23)======> [无,[3,5,6,7,16,23],无,无,无,无,无]
编程目标:
def bucketize(*arr):
pass
测试样例:
test.describe("Sample tests")
test.assert_equals(bucketize(2,2,4,4,6,6,9,9,9,9), [None, None, [,,6], None, [9], None, None, None, None, None, None])
test.assert_equals(bucketize(3,3,3,3,2), [None, [2], None, None, [], None])
test.assert_equals(bucketize(5,5,5,5,5), [None, None, None, None, , [5]])
test.assert_equals(bucketize(77,3,40,40,40), [None, [3,77], None, [], None, None])
test.assert_equals(bucketize(16,7,5,3,6,23), [None, [3,5,6,7,16,23], None, None, None, None, None])
最佳答案(多种解法):
点击查看答案
更多关联题目:
python基础练习题:平均数组【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python基础练习题:众多论点的总和【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:退休规划作为服务【难度:2级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python高级练习题:减少方向【难度:3级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/frequency-analysis-with-buckets
更多推荐
python进阶练习题:频率分析水桶【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
发布评论