mirror of
https://github.com/donnemartin/interactive-coding-challenges.git
synced 2024-03-22 13:11:13 +08:00
Fixed #21: Partitioning linked list problem: Does not work if item greater than partition value is to the left.
This commit is contained in:
parent
35e6cc13d8
commit
0667df9b03
|
@ -151,19 +151,20 @@
|
||||||
"\n",
|
"\n",
|
||||||
" print('Test: General case')\n",
|
" print('Test: General case')\n",
|
||||||
" # Partition = 10\n",
|
" # Partition = 10\n",
|
||||||
" # Input: 4, 3, 7, 8, 10, 1, 10, 12\n",
|
" # Input: 4, 3, 13, 8, 10, 1, 14, 10, 12\n",
|
||||||
" # Output: 4, 3, 7, 8, 1, 10, 10, 12\n",
|
" # Output: 4, 3, 8, 1, 10, 10, 13, 14, 12\n",
|
||||||
" linked_list = MyLinkedList(Node(12))\n",
|
" linked_list = MyLinkedList(Node(12))\n",
|
||||||
" linked_list.insert_to_front(10)\n",
|
" linked_list.insert_to_front(10)\n",
|
||||||
|
" linked_list.insert_to_front(14)\n",
|
||||||
" linked_list.insert_to_front(1)\n",
|
" linked_list.insert_to_front(1)\n",
|
||||||
" linked_list.insert_to_front(10)\n",
|
" linked_list.insert_to_front(10)\n",
|
||||||
" linked_list.insert_to_front(8)\n",
|
" linked_list.insert_to_front(8)\n",
|
||||||
" linked_list.insert_to_front(7)\n",
|
" linked_list.insert_to_front(13)\n",
|
||||||
" linked_list.insert_to_front(3)\n",
|
" linked_list.insert_to_front(3)\n",
|
||||||
" linked_list.insert_to_front(4)\n",
|
" linked_list.insert_to_front(4)\n",
|
||||||
" partitioned_list = linked_list.partition(10)\n",
|
" partitioned_list = linked_list.partition(10)\n",
|
||||||
" assert_equal(partitioned_list.get_all_data(),\n",
|
" assert_equal(partitioned_list.get_all_data(),\n",
|
||||||
" [4, 3, 7, 8, 1, 10, 10, 12])\n",
|
" [4, 3, 8, 1, 10, 10, 13, 14, 12])\n",
|
||||||
"\n",
|
"\n",
|
||||||
" print('Success: test_partition')\n",
|
" print('Success: test_partition')\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
|
|
@ -55,8 +55,8 @@
|
||||||
"* Right linked list is empty\n",
|
"* Right linked list is empty\n",
|
||||||
"* General case\n",
|
"* General case\n",
|
||||||
" * Partition = 10\n",
|
" * Partition = 10\n",
|
||||||
" * Input: 4, 3, 7, 8, 10, 1, 10, 12\n",
|
" * Input: 4, 3, 13, 8, 10, 1, 10, 12\n",
|
||||||
" * Output: 4, 3, 7, 8, 1, 10, 10, 12"
|
" * Output: 4, 3, 8, 1, 10, 10, 13, 12"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -115,6 +115,8 @@
|
||||||
" while curr is not None:\n",
|
" while curr is not None:\n",
|
||||||
" if curr.data < data:\n",
|
" if curr.data < data:\n",
|
||||||
" left.append(curr.data)\n",
|
" left.append(curr.data)\n",
|
||||||
|
" elif curr.data == data:\n",
|
||||||
|
" right.insert_to_front(curr.data)\n",
|
||||||
" else:\n",
|
" else:\n",
|
||||||
" right.append(curr.data)\n",
|
" right.append(curr.data)\n",
|
||||||
" curr = curr.next\n",
|
" curr = curr.next\n",
|
||||||
|
@ -176,19 +178,20 @@
|
||||||
"\n",
|
"\n",
|
||||||
" print('Test: General case')\n",
|
" print('Test: General case')\n",
|
||||||
" # Partition = 10\n",
|
" # Partition = 10\n",
|
||||||
" # Input: 4, 3, 7, 8, 10, 1, 10, 12\n",
|
" # Input: 4, 3, 13, 8, 10, 1, 14, 10, 12\n",
|
||||||
" # Output: 4, 3, 7, 8, 1, 10, 10, 12\n",
|
" # Output: 4, 3, 8, 1, 10, 10, 13, 14, 12\n",
|
||||||
" linked_list = MyLinkedList(Node(12))\n",
|
" linked_list = MyLinkedList(Node(12))\n",
|
||||||
" linked_list.insert_to_front(10)\n",
|
" linked_list.insert_to_front(10)\n",
|
||||||
|
" linked_list.insert_to_front(14)\n",
|
||||||
" linked_list.insert_to_front(1)\n",
|
" linked_list.insert_to_front(1)\n",
|
||||||
" linked_list.insert_to_front(10)\n",
|
" linked_list.insert_to_front(10)\n",
|
||||||
" linked_list.insert_to_front(8)\n",
|
" linked_list.insert_to_front(8)\n",
|
||||||
" linked_list.insert_to_front(7)\n",
|
" linked_list.insert_to_front(13)\n",
|
||||||
" linked_list.insert_to_front(3)\n",
|
" linked_list.insert_to_front(3)\n",
|
||||||
" linked_list.insert_to_front(4)\n",
|
" linked_list.insert_to_front(4)\n",
|
||||||
" partitioned_list = linked_list.partition(10)\n",
|
" partitioned_list = linked_list.partition(10)\n",
|
||||||
" assert_equal(partitioned_list.get_all_data(),\n",
|
" assert_equal(partitioned_list.get_all_data(),\n",
|
||||||
" [4, 3, 7, 8, 1, 10, 10, 12])\n",
|
" [4, 3, 8, 1, 10, 10, 13, 14, 12])\n",
|
||||||
"\n",
|
"\n",
|
||||||
" print('Success: test_partition')\n",
|
" print('Success: test_partition')\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
|
|
@ -21,19 +21,20 @@ class TestPartition(object):
|
||||||
|
|
||||||
print('Test: General case')
|
print('Test: General case')
|
||||||
# Partition = 10
|
# Partition = 10
|
||||||
# Input: 4, 3, 7, 8, 10, 1, 10, 12
|
# Input: 4, 3, 13, 8, 10, 1, 14, 10, 12
|
||||||
# Output: 4, 3, 7, 8, 1, 10, 10, 12
|
# Output: 4, 3, 8, 1, 10, 10, 13, 14, 12
|
||||||
linked_list = MyLinkedList(Node(12))
|
linked_list = MyLinkedList(Node(12))
|
||||||
linked_list.insert_to_front(10)
|
linked_list.insert_to_front(10)
|
||||||
|
linked_list.insert_to_front(14)
|
||||||
linked_list.insert_to_front(1)
|
linked_list.insert_to_front(1)
|
||||||
linked_list.insert_to_front(10)
|
linked_list.insert_to_front(10)
|
||||||
linked_list.insert_to_front(8)
|
linked_list.insert_to_front(8)
|
||||||
linked_list.insert_to_front(7)
|
linked_list.insert_to_front(13)
|
||||||
linked_list.insert_to_front(3)
|
linked_list.insert_to_front(3)
|
||||||
linked_list.insert_to_front(4)
|
linked_list.insert_to_front(4)
|
||||||
partitioned_list = linked_list.partition(10)
|
partitioned_list = linked_list.partition(10)
|
||||||
assert_equal(partitioned_list.get_all_data(),
|
assert_equal(partitioned_list.get_all_data(),
|
||||||
[4, 3, 7, 8, 1, 10, 10, 12])
|
[4, 3, 8, 1, 10, 10, 13, 14, 12])
|
||||||
|
|
||||||
print('Success: test_partition')
|
print('Success: test_partition')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user