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的新手进阶