def test_permute_unique(self):
        nums1 = [1, 1, 2]
        answer1 = [[2, 1, 1], [1, 2, 1], [1, 1, 2]]
        self.assertEqual(sorted(permute_unique(nums1)), sorted(answer1))

        nums2 = [1, 2, 1, 3]
        answer2 = [
            [3, 1, 2, 1],
            [1, 3, 2, 1],
            [1, 2, 3, 1],
            [1, 2, 1, 3],
            [3, 2, 1, 1],
            [2, 3, 1, 1],
            [2, 1, 3, 1],
            [2, 1, 1, 3],
            [3, 1, 1, 2],
            [1, 3, 1, 2],
            [1, 1, 3, 2],
            [1, 1, 2, 3],
        ]
        self.assertEqual(sorted(permute_unique(nums2)), sorted(answer2))

        nums3 = [1, 2, 3]
        answer3 = [[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]
        self.assertEqual(sorted(permute_unique(nums3)), sorted(answer3))
Пример #2
0
    def test_permute_unique(self):
        nums1 = [1, 1, 2]
        answer1 = [[2, 1, 1], [1, 2, 1], [1, 1, 2]]
        self.assertEqual(sorted(permute_unique(nums1)), sorted(answer1))

        nums2 = [1, 2, 1, 3]
        answer2 = [[3, 1, 2, 1], [1, 3, 2, 1], [1, 2, 3, 1], [1, 2, 1, 3], [3, 2, 1, 1], 
            [2, 3, 1, 1], [2, 1, 3, 1], [2, 1, 1, 3], [3, 1, 1, 2], [1, 3, 1, 2], [1, 1, 3, 2], [1, 1, 2, 3]]
        self.assertEqual(sorted(permute_unique(nums2)), sorted(answer2))

        nums3 = [1, 2, 3]
        answer3 = [[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]
        self.assertEqual(sorted(permute_unique(nums3)), sorted(answer3))
from algorithms.backtrack import permute_unique

a = [1, 1, 2]

print(permute_unique(a))