aboutsummaryrefslogtreecommitdiff
path: root/challenge-059/duncan-c-white/README
blob: 99887d193e9311e8b58cf977cc91fe774debdfcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Task 1: "Linked List

You are given a linked list and a value k. Write a script to partition
the linked list such that all nodes less than k come before nodes greater
than or equal to k. Make sure you preserve the original relative order
of the nodes in each of the two partitions.

For example:

Linked List: 1 -> 4 -> 3 -> 2 -> 5 -> 2

k = 3

Expected Output: 1 -> 2 -> 2 -> 4 -> 3 -> 5.

"

My notes: why a linked list not an array, it would be so simple with an
array.  Ok, ok, a linked list: presumably want to reuse the existing nodes.
Build two lists (reusing the existing nodes), one "before", the other "after".
Delink each node, append it to whichever list is appropriate. Repeat.


Task 2: "Bit Sum

For this task, you will most likely need a function f(a,b) which returns
the count of different bits of binary representation of a and b.

For example, f(1,3) = 1, since:

Binary representation of 1 = 01

Binary representation of 3 = 11

There is only 1 different bit. Therefore the subroutine should return
1. Note that if one number is longer than the other in binary, the most
significant bits of the smaller number are padded (i.e., they are assumed
to be zeroes).

Script Output

Your script should accept n positive numbers. Your script should sum
the result of f(a,b) for every pair of numbers given:

For example, given 2, 3, 4, the output would be 6, since f(2,3) + f(2,4)
+ f(3,4) = 1 + 2 + 3 = 6
"

My notes: sounds very straightforward.