一道算法题

2021-03-15 16:16:44 浏览数 (1)

题目:

代码语言:javascript复制
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,
同时保持非零元素的相对顺序。

题目分析,给数组一个nums,如果有0移动到数组末位,如果非零,对元素进行排序。

代码如下:

代码语言:javascript复制
class solution:
    def rely(self,nums:list)->list:
        for i in range(len(nums)-1):
            if nums[i]==0:
                target=nums[i]
                nums.remove(nums[i])
                nums.append(target)
            else:
                for j in range(i 1,len(nums)-1):
                    if nums[i]>nums[j]:
                        nums[j],nums[i]=nums[i],nums[j]
        return nums

那么我来们可以对代码进行简单的测试。

代码语言:javascript复制
if __name__=="__main__":
    s=solution()
    print(s.rely([0,1,2,4,3,2,1]))

最后输出的结果:

代码语言:javascript复制
[1, 1, 2, 2, 3, 4, 0]

简单的写了一个单元测试的用例

代码语言:javascript复制
import unittest
from yidong import solution

class MyTestCase(unittest.TestCase):
    def test_one(self):
        s = solution()
        result=(s.rely([0, 1, 2, 4, 3, 2, 1]))
        self.assertEqual(result, [1, 1, 2, 2, 3, 4, 0])

我们还应该去测试我们的代码,对于我们的代码要有一定的可测性。

深入的测试,我们这里不在探讨,这里只是给大家举一个测试的例子,方便大家可以进行测试。

对代码要进行一定的测试才能放心,可能大家感觉我们的时间是有限的,在实际的工作中,可能做不到,但是我想说的是 进行测试是有必要的。无论在什么时候的代码,我们要对代码进行一定的代码的单元测试。

0 人点赞