切片操作似乎不一致.在某些情况下,切片包括第k个值,有时则不包括.
Rotate.py
def rotate(nums, k):
temp = nums[0:k+1]
del nums[0:k+1]
nums.extend(temp)
test_Rotate.py
import unittest
from rotate_array import rotate
class TestRotateArray(unittest.TestCase):
def test_rotate_array2(self):
nums= [-1, -100, 3, 99]
k = 2
expected = [3, 99, -1, -100]
rotate(nums, k)
self.assertListEqual(nums, expected)
def test_rotate_array(self):
nums= [1,2,3,4,5,6,7]
k = 3
expected = [5,6,7,1,2,3,4]
rotate(nums, k)
self.assertListEqual(nums, expected)
if __name__ == '__main__':
unittest.main()
第一个测试将失败,第二个测试将在我执行Nums[:k+1]时通过. 测试失败的数字数组:[99,-1,-100,3]
当我使用Nums[0:k]时,第一个通过,第二个不通过. 测试失败的数字数组:[4,5,6,7,1,2,3]
我正在研究的整个问题都可以在here