100% found this document useful (1 vote)
6 views

Programming Interview Problems: Dynamic Programming (with solutions in Python) 1st Edition Leonardo Rossi pdf download

The document is a resource for programming interview preparation, specifically focusing on dynamic programming problems with solutions in Python. It includes a variety of problems, their solutions, and explanations aimed at helping candidates understand and tackle these challenges effectively. The book emphasizes the importance of understanding dynamic programming concepts due to their complexity and infrequent use in everyday programming tasks.

Uploaded by

kyzsjdboal9177
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
6 views

Programming Interview Problems: Dynamic Programming (with solutions in Python) 1st Edition Leonardo Rossi pdf download

The document is a resource for programming interview preparation, specifically focusing on dynamic programming problems with solutions in Python. It includes a variety of problems, their solutions, and explanations aimed at helping candidates understand and tackle these challenges effectively. The book emphasizes the importance of understanding dynamic programming concepts due to their complexity and infrequent use in everyday programming tasks.

Uploaded by

kyzsjdboal9177
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Programming Interview Problems: Dynamic

Programming (with solutions in Python) 1st


Edition Leonardo Rossi download

https://textbookfull.com/product/programming-interview-problems-
dynamic-programming-with-solutions-in-python-1st-edition-
leonardo-rossi/

Download full version ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming 1st Edition Jessen
Havill

https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-1st-
edition-jessen-havill/

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming First Edition Jessen
Havill

https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-
first-edition-jessen-havill/

Discovering Computer Science: Interdisciplinary


Problems, Principles, and Python Programming 2nd
Edition Jessen Havill

https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-2nd-
edition-jessen-havill/

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming 2nd Edition Jessen
Havill

https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-2nd-
edition-jessen-havill-2/
Cracking C Programming Interview 500 interview
questions and explanations to sharpen your C concepts
for a lucrative programming career English Edition
Jhamb
https://textbookfull.com/product/cracking-c-programming-
interview-500-interview-questions-and-explanations-to-sharpen-
your-c-concepts-for-a-lucrative-programming-career-english-
edition-jhamb/

Robust Adaptive Dynamic Programming 1st Edition Hao Yu

https://textbookfull.com/product/robust-adaptive-dynamic-
programming-1st-edition-hao-yu/

Python Network Programming Cookbook Kathiravelu

https://textbookfull.com/product/python-network-programming-
cookbook-kathiravelu/

Python GUI Programming Cookbook Meier

https://textbookfull.com/product/python-gui-programming-cookbook-
meier/

Abstract Dynamic Programming Second Edition Dimitri P.


Bertsekas

https://textbookfull.com/product/abstract-dynamic-programming-
second-edition-dimitri-p-bertsekas/
1

Programming Interview Problems: Dynamic Programming (with solutions in Python)


Copyright 2020 Leonardo Rossi
The designations of products and technologies that appear in this book may be claimed as
trademarks by their manufacturers and sellers.
While every precaution has been taken in the preparation of this book, the publisher and
authors assume no responsibility for errors or omissions, or for damages resulting from the
use of the information contained herein.
2 Contents

Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
General advice for the interview . . . . . . . . . . . . . . . . . . . . . . . 6
1 The Fibonacci sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Solution 1: brute force, 𝑂(2𝑛 ) time 7
Solution 2: dynamic programming, top-down 9
Solution 2: dynamic programming, bottom-up 11
2 Optimal stock market strategy . . . . . . . . . . . . . . . . . . . . . . . . 13
Solution 1: dynamic programming, top-down, 𝑂(𝑛) time 13
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛) time 15
Variation: limited investment budget 16
Variation: limited number of transactions 17
3 Change-making . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Clarification questions 20
Solution 1: dynamic programming, top-down, 𝑂(𝑛𝑣) time 20
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛𝑣) time 25
Solution 3: dynamic programming + BFS, bottom-up, 𝑂(𝑛𝑣) time 26
Variant: count the number of ways to pay (permutations) 29
Solution: dynamic-programming, top-down, 𝑂(𝑛𝑣) 29
Variant: count the number of ways to pay (combinations) 32
Solution: dynamic-programming, top-down, 𝑂(𝑛𝑣) 32
4 Number of expressions with a target result . . . . . . . . . . . . . . . . . . 36
Clarification questions 36
Solution 1: brute-force, 𝑂(2𝑛 ) time 36
Solution 2: dynamic programming, top-down, 𝑂(𝑛𝑆) time 38
Solution 3: dynamic programming + BFS, bottom-up, 𝑂(𝑛𝑆) time 39
Unit tests 41
5 Partitioning a set into equal-sum parts . . . . . . . . . . . . . . . . . . . . 43
Clarification questions 43
Solution 1: dynamic programming, top-down, 𝑂(𝑛𝑆) time 43
6 Splitting a string without spaces into words . . . . . . . . . . . . . . . . . . 46
Clarification questions 46
Solution 1: dynamic programming, top-down, 𝑂(𝑛𝑤) time 46
Solution 2: dynamic programming + BFS/DFS, bottom-up, 𝑂(𝑛𝑤) time 48
7 The number of binary search trees . . . . . . . . . . . . . . . . . . . . . . 50
Solution 1: dynamic programming, top-down, 𝑂(𝑛2 ) time 50
8 The maximum-sum subarray . . . . . . . . . . . . . . . . . . . . . . . . 55
Clarification questions 55
Solution 1: dynamic programming, 𝑂(𝑛) time, 𝑂(𝑛) space 55
Solution 2: dynamic programming, 𝑂(𝑛) time, 𝑂(1) space 61
Unit tests 61
9 The maximum-product subarray . . . . . . . . . . . . . . . . . . . . . . . 63
Clarification questions 63
Solution 1: greedy, two-pass, 𝑂(𝑛) time 63
Contents 3

Solution 2: dynamic programming, one-pass, 𝑂(𝑛) time 69


Unit tests 73
10 Shortest pair of subarrays with target sum . . . . . . . . . . . . . . . . . . 75
Clarification questions 75
Solution 1: dynamic programming + sliding window, 𝑂(𝑛) time, 𝑂(𝑛) space 75
11 Longest palindromic substring . . . . . . . . . . . . . . . . . . . . . . . . 81
Clarification questions 81
Solution 1: brute force, 𝑂(𝑛3 ) 81
Checking if a string is a palindrome 81
Checking if a string is a palindrome: a faster way 83
Putting it all together 83
Solution 2: dynamic programming, 𝑂(𝑛2 ) 84
Solution 3: dynamic programming, 𝑂(𝑛) 88
Unit tests 90
12 Longest valid parentheses substring . . . . . . . . . . . . . . . . . . . . . 92
Clarification questions 92
Solution 1: dynamic programming, bottom-up, 𝑂(𝑛) 92
Solution 3: dynamic programming, top-down, 𝑂(𝑛) 97
Unit tests 98
13 Longest increasing subsequence . . . . . . . . . . . . . . . . . . . . . . . 100
Clarification questions 100
Solution 1: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, 𝑂(𝑛2 ) space 100
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, 𝑂(𝑛) space 103
Variant: count the number of solutions 105
Solution: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, 𝑂(𝑛) space 105
14 Longest arithmetic subsequence . . . . . . . . . . . . . . . . . . . . . . . 108
Clarification questions 108
Solution 1: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, 𝑂(𝑛2 ) space 108
Unit tests 112
15 Dealing the best hand of cards . . . . . . . . . . . . . . . . . . . . . . . . 114
Clarification questions 114
Solution 1: brute force, 𝑂(𝑛2 ) time 114
Solution 2: dynamic programming, 𝑂(𝑛) time 115
Unit tests 116
16 Number of ways to climb stairs . . . . . . . . . . . . . . . . . . . . . . . 118
Clarification questions 118
Solution 1: dynamic programming, top-down, 𝑂(𝑛) time 118
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛) time 119
Solution 3: dynamic programming, bottom-up, 𝑂(1) time 119
Unit tests 120
17 Number of paths through maze . . . . . . . . . . . . . . . . . . . . . . . 121
Clarification questions 121
Solution 1: dynamic programming, top-down, 𝑂(𝑛2 ) time 121
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛2 ) time 124
Solution 3: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, linear space 125
4 Contents

Unit tests 126


18 Maximum-score path through maze . . . . . . . . . . . . . . . . . . . . . 129
Clarification questions 129
Solution 1: dynamic programming, top-down, 𝑂(𝑛2 ) time 129
Solution 2: dynamic programming, bottom-up, 𝑂(𝑛2 ) time 132
Solution 3: dynamic programming, bottom-up, 𝑂(𝑛2 ) time, linear space 133
Unit tests 134
19 Subarray sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Clarification questions 137
Solution 1: brute-force, 𝑂(𝑚𝑛) 137
Solution 2: dynamic programming, 𝑂(𝑚 + 𝑛) 137
20 Submatrix sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Clarification questions 139
Solution 1: brute-force, 𝑂(𝑚𝑛2 ) 139
Solution 2: dynamic programming, 𝑂(𝑚 + 𝑛2 ) 140
Unit tests 144
21 Largest square submatrix of ones . . . . . . . . . . . . . . . . . . . . . . . 148
Clarification questions 148
Solution 1: brute-force, 𝑂(𝑛5 ) 148
Solution 2: dynamic programming, 𝑂(𝑛2 ) 150
22 Largest rectangle in skyline . . . . . . . . . . . . . . . . . . . . . . . . . 154
Clarification questions 154
Solution 1: brute-force, 𝑂(𝑛3 ) 154
Solution 2: dynamic programming, 𝑂(𝑛2 ) 155
Solution 3: dynamic programming + stack, 𝑂(𝑛) 156
23 Largest submatrix of ones . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Clarification questions 162
Solution 1: brute-force, 𝑂(𝑛6 ) 162
Solution 2: dynamic programming, 𝑂(𝑛3 ) 163
Solution 3: dynamic programming, 𝑂(𝑛2 ) 166
24 Interleaved strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Clarification questions 168
Solution 1: brute-force, 𝑂(2𝑛 ) 168
Solution 2: dynamic programming, 𝑂(𝑛2 ) 172
25 Regular expression matching . . . . . . . . . . . . . . . . . . . . . . . . 174
Clarification questions 174
Solution 1: brute-force, 𝑂(2𝑛 ) 174
Solution 2: dynamic programming, 𝑂(𝑛2 ) 178
Unit tests 180
Contents 5

Preface
Over the last decade, many companies have adopted the FANG-style interview process for
software engineer positions: programming questions that involve an algorithm design step,
and often require competitive programming solving techniques.
The advantages and disadvantages of this style of interview questions are highly debated, and
outside the scope of this book. What is important is that the questions that are asked pose
serious challenges to candidates, thus require thorough preparation.
The class of problems that are by far the most challenging is dynamic programming. This is
due to a combination of dynamic programming being rarely used in day-to-day work, and the
difficulty of finding a solution in a short amount of time, when not having prior experience
with this method.
This book presents 25 dynamic programming problems that are most commonly encoun-
tered in interviews, and several of their variants. For each problem, multiple solutions are
given, including a gradual walkthrough that shows how one may reach the answer. The goal
is not to memorize solutions, but to understand how they work and learn the fundamental
techniques, such that new, previously unseen problems can be solved with ease.
The solutions are very detailed, showing example walkthrougs, verbal explanations of the
solutions, and many diagrams and drawings. These were designed in a way that helps both
verbal and visual learners grasp the material with ease. The code implementation usually
comes last, accompanied by unit tests and complexity/performance analysis.
A particular focus has been put on code clarity and readability: during the interview, we are
expected to write code as we would on the job. This means that the code must be tidy, with
well-named variables, short functions that do one thing, modularity, comments describing
why we do certain things etc. This is, sadly, unlike most other material on dynamic pro-
gramming that one may find online, in competitive programming resources, or even in well-
known algorithm design textbooks. In fact, the poor state of the material on this topic is the
main reason I wrote this book.
I hope that you find this book useful for preparing to get the job you wish for. Whether you
like the book or not, I would appreciate your feedback through a book review.
Good luck with your interviews!
6 Contents

General advice for the interview


Find out in advance what kind of questions will be asked. Usually, they are in one or more
of the following categories: coding, algorithm design (with or without implementation),
domain-specific questions, theoretical questions, behavioral questions, live coding, debug-
ging, one-day assignments or pair programming. You should know what you need to prepare
for.
For programming questions, do not jump directly to writing code, even if the solution looks
obvious. First, ask clarification questions and go over some simple examples, to make sure
you understand the requirements well. Then, you may sketch a solution and discuss it with
the interviewer. Several iterations might be needed in case of correctness or performance
issues. Only once they agree that the solution looks fine, proceed with implementing it.
Treat the interview questions not like problems, but real job assignments. Take them seriously
and solve them thoroughly, like a professional.
Treat your interviewers as colleagues, with whom you must work together to solve the as-
signment. Shift into the mindset that you are already on the same team. Discuss and interact
with them the same way you would with colleagues on the job.
Write tidy, clean code—as much as possible given the time you have. Try to follow typi-
cal coding style guidelines for your language. For Python, you can find good guidelines at
www.python.org/dev/peps/pep-0008 and google.github.io/styleguide/pyguide.html.
Do not forget to ask about the size of the data your code needs to handle—this is important
to determine the time complexity of your solution.
If you cannot find the fastest algorithm needed to solve the problem, propose a slower one.
Sometimes you might get an idea (or a hint from the interviewer) to make it faster once you
write it. But even if you do not, any solution is better than no solution.
Try to be quick in your answer. Interviewers usually plan to ask follow-up questions. If you
do not have sufficient time left for these, your result may be poor, even if you answered the
original question well.
7

1 The Fibonacci sequence


Return the n-th number in the Fibonacci sequence. The first two numbers in the Fibonacci
sequence are equal to 1; any other number is equal to the sum of the preceding two numbers.
Example: for n = 6, the first 6 numbers of the sequence are [1, 1, 2, 3, 5, 8] so the result
is 8.

Solution 1: brute force, 𝑂(2𝑛 ) time


A straightforward solution is to implement the function recursively:
def fibonacci(n):
if n <= 2:
return 1
return fibonacci(n ­ 1) + fibonacci(n ­ 2)

The above code is correct but too slow due to redundancies. We can see this if we add logging
to the function:
import inspect
def stack_depth():
return len(inspect.getouterframes(inspect.currentframe())) ­ 1

def fibonacci(n):
print("{indent}fibonacci({n}) called".format(
indent=" " * stack_depth(), n=n))
if n <= 2:
return 1
return fibonacci(n ­ 1) + fibonacci(n ­ 2)

fibonacci(6)

We changed the code to print the argument passed to the fibonacci function. The message
is indented by the call stack depth, so that we can see better which function call is causing
which subsequent calls. Running the above code prints:
fibonacci(6) called
fibonacci(5) called
fibonacci(4) called
fibonacci(3) called
fibonacci(2) called
fibonacci(1) called
fibonacci(2) called
fibonacci(3) called
fibonacci(2) called
fibonacci(1) called
fibonacci(4) called
8 1 The Fibonacci sequence

fibonacci(3) called
fibonacci(2) called
fibonacci(1) called
fibonacci(2) called

That’s a lot of calls! If we draw the call graph, we can see that it’s an almost full binary tree:
9

Notice that the height of the binary tree is n (in this case, 6). The tree is almost full, thus
it has 𝑂(2𝑛 ) nodes. Since each node represends a call of our function, our algorithm has
exponential complexity.

Solution 2: dynamic programming, top-down


We can optimize the previous solution by avoiding redundant computations. These redun-
dancies are visible in the call graph:

• fibonacci(4) is called twice, once by fibonacci(5) and once by fibonacci(6);


• fibonacci(3) is called 3 times;
• fibonacci(2) is called 5 times;
• fibonacci(1) is called 3 times.

It does not make sense to compute, for example, the 4-th Fibonacci number twice, since it
does not change. We should compute it only once and cache the result.

Let’s use a dictionary to store the cache:


fibonacci_cache = {}
def fibonacci(n):
if n <= 2:
return 1
if n not in fibonacci_cache:
fibonacci_cache[n] = fibonacci(n ­ 1) + fibonacci(n ­ 2)
return fibonacci_cache[n]

The call graph of the optimized code looks like this:

Notice how only the first call to fibonacci(n) recurses. All subsequent calls return from
the cache the value that was previously computed.

This implementation has 𝑂(𝑛) time complexity, since exactly one function call is needed to
compute each number in the series.
10 1 The Fibonacci sequence

This strategy of caching the results of subproblems is called dynamic programming.

While the above code is correct, there are some code style issues:

• We introduced the global variable fibonacci_cache; it would be great if we could


avoid global variables, since they impact code readability;
• The code is more complicated than before due to the cache manipulations.

We can avoid adding the global variable by using instead an attribute called cache that is
attached to the function:
def fibonacci(n):
if n <= 2:
return 1
if not hasattr(fibonacci, 'cache'):
fibonacci.cache = {}
if n not in fibonacci.cache:
fibonacci.cache[n] = fibonacci(n ­ 1) + fibonacci(n ­ 2)
return fibonacci.cache[n]

The advantage is that the cache variable is now owned by the function, so no external code
is needed anymore to initialize it. The disadvantage is that the code has become even more
complicated, thus harder to read and modify.

A better approach is to keep the original function simple, and wrap it with a decorator that
performs the caching:
def cached(f):
cache = {}
def worker(*args):
if args not in cache:
cache[args] = f(*args)
return cache[args]
return worker

@cached
def fibonacci(n):
if n <= 2:
return 1
return fibonacci(n ­ 1) + fibonacci(n ­ 2)

The good news is that Python 3 has built-in support for caching decorators, so there is no
need to roll your own:
from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
if n <= 2:
11

return 1
return fibonacci(n ­ 1) + fibonacci(n ­ 2)

By default lru_cache is limited to 128 entries, with least-recently used entries evicted when
the size limit is hit. Passing maxsize=None to lru_cache ensures that there is no memory
limit and all values are cached. In practice, it might be preferrable to set a limit instead of
letting memory usage increase without bounds.

Prefer standard library functionality to rolling your own


Using the standard lru_cache decorator makes the code easier to read, since it has well-
known behavior. The advange over using a custom caching method is that the reader
does not need to spend time to understand its details.

Solution 2: dynamic programming, bottom-up


While computing the Fibonacci sequence recursively is useful for pedagogical reasons, it is
more intuitive to compute it iteratively starting from the smaller numbers, just like a human
would do:
def fibonacci(n):
series = [1, 1]
while len(series) < n:
series.append(series[­1] + series[­2])
return series[­1]

The code has 𝑂(𝑛) time complexity, as well as 𝑂(𝑛) space complexity. In practice the perfor-
mance is better than the recursive implementation, since there is no overhead due to extra
function calls.

The space complexity can be reduced to 𝑂(1) if we notice that we do not need to store the
entire sequence, just the last two numbers:
def fibonacci(n):
previous = 1
current = 1
for i in range(n ­ 2):
next = current + previous
previous, current = current, next
return current

We have written an algorithm that starts from the smallest subproblem (the first two numbers
in the sequence), then expands the solution to reach the original problem (the n-th number
in the sequence). This approach is called bottom-up dynamic programming. By contrast,
the previous approach of solving the problem recursively starting from the top is called top-
down dynamic programming. Both approaches are equally valid; one or the other may be
more intuitive, depending on the problem.
12 1 The Fibonacci sequence

In the rest of the book, we will look at how we can apply dynamic programming to solving
non-trivial problems. In general, we will show both top-down and bottom-up solutions. We
will see that the top-down approach is often easier to understand and implement, however it
offers less optimization opportunities compared to bottom-up.
13

2 Optimal stock market strategy


When evaluating stock market trading strategies, it is useful to determine the maximum pos-
sible profit that can be made by trading a certain stock. Write an algorithm that, given the
daily price of a stock, computes the maximum profit that can be made by buying and selling
that stock. Assume that you are allowed to own no more than 1 share at any time, and that
you have an unlimited budget.
Example 1: The stock price over several days is [2, 5, 1]. The best strategy is to buy a share
on the first day for price 2, then sell it on the second day for price 5, obtaining a profit of 3.
Example 2: The stock price over several days is [2, 5, 1, 3]. The best strategy is to buy a
share on the first day for price 2, then sell it on the second day for price 5, obtaining a profit
of 3; then buy it again on the third day for price 1, and sell it on the fourth day for price 3,
obtaining an overall profit of 5.

Solution 1: dynamic programming, top-down, 𝑂(𝑛) time


The first idea that comes to mind while approaching this problem is using a state machine.
This is because on any day, our state can be described by:
• whether we own the share or not;
• the amount of money we have.
Between the states of consecutive days, we have only four possible transitions:
• If at the end of the previous day we did not own the share:
• buying the stock, so we now own it, but we have less money;
• avoiding the stock, so we keep our money unchanged;
• If at the end of the previous day we owned the share:
• selling the stock, so we no longer own it, and have more money;
• holding the stock, so we keep both the stock and our money unchanged.

Knowing this, we can model the entire problem using a state machine. In our initial state,
14 2 Optimal stock market strategy

we have some amount of cash and no shares. In the final state, we have some other amount
of cash (ideally higher), and no shares. In between, we have state transitions:

Solving the original problem can be reduced to finding a chain of transitions through this
state machine, that yields the maximum profit.
Notice how our state during any day only depends on the state from the previous day. This is
excellent: we can express our problem using a simple recurrence relation, just as we did for
the Fibonacci sequence problem.
The structure of the solution using a recursive algorithm looks like this:
def max_profit(daily_price):
def get_best_profit(day, have_stock):
"""
Returns the best profit that can be obtained by the end of the day.
At the end of the day:
* if have_stock is True, the trader must own the stock;
* if have_stock is False, the trader must not own the stock.
"""
# TODO ...
# Final state: end of last day, no shares owned.
last_day = len(daily_price) ­ 1
no_stock = False
return get_best_profit(last_day, no_stock)

Note that we defined a helper function get_best_profit which takes as parameters the
identifiers of a state: the day number and whether we own the stock or not at the end of the
day. We use get_best_profit to compute the profit for a specific state in the state machine.
Let’s now implement the helper using a recurrence relation. We need to consider the previous
states that can transition into the current state, and choose the best one:
@lru_cache(maxsize=None)
def get_best_profit(day, have_stock):
"""
15

Returns the best profit that can be obtained by the end of the day.
At the end of the day:
* if have_stock is True, the trader must own the stock;
* if have_stock is False, the trader must not own the stock.
"""
if day < 0:
if not have_stock:
# Initial state: no stock and no profit.
return 0
else:
# We are not allowed to have initial stock.
# Add a very large penalty to eliminate this option.
return ­float('inf')
price = daily_price[day]
if have_stock:
# We can reach this state by buying or holding.
strategy_buy = get_best_profit(day ­ 1, False) ­ price
strategy_hold = get_best_profit(day ­ 1, True)
return max(strategy_buy, strategy_hold)
else:
# We can reach this state by selling or avoiding.
strategy_sell = get_best_profit(day ­ 1, True) + price
strategy_avoid = get_best_profit(day ­ 1, False)
return max(strategy_sell, strategy_avoid)

The first part of the helper implements the termination condition, i.e. handling the initial
state, while the second part implements the recurrence. To simplify the logic of the recur-
rence we allow selling on any day including the first, but we ensure that selling on the first
day would yield a negative profit, so it’s an option that cannot be chosen as optimal.

Handle the termination condition early


It is preferrable to handle the termination condition of a recursive function in a single
place, as opposed to wrapping each call of the function with a check like if day < 0
.... Handling it early simplifies greatly the logic and makes the code easier to read.

Both the time and space complexity of this solution are 𝑂(𝑛). Note that it is important to
cache the results of the helper function, otherwise the time complexity becomes exponential
instead of linear.

Solution 2: dynamic programming, bottom-up, 𝑂(𝑛) time


Once we have implemented the top-down solution, it is easy to rewrite it as bottom-up: we
start from the initial state, and iterate day by day until we reach the final state:
16 2 Optimal stock market strategy

def max_profit(daily_price):
# Initial state: start from a reference cash amount.
# It can be any value.
# We use 0 and allow our cash to go below 0 if we need to buy a share.
cash_not_owning_share = 0
# High penalty for owning a stock initially:
# ensures this option is never chosen.
cash_owning_share = ­float('inf')
for price in daily_price:
# Transitions to the current day, owning the stock:
strategy_buy = cash_not_owning_share ­ price
strategy_hold = cash_owning_share
# Transitions to the current day, not owning the stock:
strategy_sell = cash_owning_share + price
strategy_avoid = cash_not_owning_share
# Compute the new states.
cash_owning_share = max(strategy_buy, strategy_hold)
cash_not_owning_share = max(strategy_sell, strategy_avoid)
# The profit is the final cash amount, since we start from
# a reference of 0.
return cash_not_owning_share

At each step, we only need to store the profit corresponding to the two states of that day. This
is due to the state machine not having any transitions between non-consecutive days: we
could say that at any time, the state machine does not “remember” anything from the days
before yesterday.

The time complexity is 𝑂(𝑛), but the space complexity has been reduced to 𝑂(1), since we
only need to store the result for the previous day.

Bottom-up solutions often have smaller space complexity than top-down


It is very common (with some exceptions) that bottom-up solutions have lower memory
requirements than top-down. This is due to the ability to control precisely what data we
store and what data we discard: instead of a LRU cache policy, we can keep only the data
we need. In addition, they do not suffer from the overhead of storing stack frames due
to recursion, which is a hidden cost of the top-down solutions.

Variation: limited investment budget


In a variation of the problem, the investment budget is limited: we start with a fixed amount
of money, and we are not allowed to buy a share if we cannot afford it (we cannot borrow
money).

We can adjust the solution for this constraint:


17

def max_profit(daily_price, budget):


# Initial state.
cash_not_owning_share = budget
# High penalty for owning a stock initially:
# ensures this option is never chosen.
cash_owning_share = ­float('inf')
for price in daily_price:
# Transitions to the current day, owning the stock:
strategy_buy = cash_not_owning_share ­ price
strategy_hold = cash_owning_share
# Transitions to the current day, not owning the stock:
strategy_sell = cash_owning_share + price
strategy_avoid = cash_not_owning_share
# Compute the new states.
cash_owning_share = max(strategy_buy, strategy_hold)
if cash_owning_share < 0:
# We cannot afford to buy the share at this time.
# Add a high penalty to ensure we never choose this option.
cash_owning_share = ­float('inf')
cash_not_owning_share = max(strategy_sell, strategy_avoid)
return cash_not_owning_share ­ budget

Any time the optimal cash amount in a given state goes below zero, we replace it with negative
infinity. This ensures that this path through the state machine will not be chosen. We only
have to do this for the states where we own stock. In the states where we do not own stock,
our cash amount never decreases from the previous day, so this check is not needed.

Expect follow-up questions


One of the most common mistakes candidates make is to assume that they have to solve
a single problem during a time slot of the interview. Taking too long to solve it does
not leave any time for follow-up questions, which puts the candidate at a disadvantage
compared to others. An old Italian proverb applies here: perfect is the enemy of good. Do
not get lost in too many details trying to make your solution perfect; reach an agreement
with your interviewer on when it is good enough, so that you have time to take 1-2
follow-up questions such as this one.

Variation: limited number of transactions


In anover variation of the problem, the total number of transactions that can be performed
is bounded: the stock can only be sold up to a certain number of times tx_limit.
In this variation, the state machine needs to be adjusted so that it keeps track of multiple
pieces of information:
• whether we own the stock or not at the end of the day;
18 2 Optimal stock market strategy

• how many times we have sold the stock so far.


Instead of having only 2 states each day (for owning or not owning the stock), we now have
up to 2 * tx_limit depending on how many times we have sold, per day. For each of these
states, we have to compute the best amount of money we can earn.
The transitions between the states need to take into account the operation (buying, holding,
selling, avoiding) and whether it leads to the next day state with the same transaction count
or one higher.
We can write the following implementation:
def max_profit(daily_price, tx_limit):
# cash_not_owning_share[k] = amount of cash at the end of the day,
# if we do not own the share, and we have sold k times so far.
# Initially we have sold 0 times and we start from a reference
# budget of 0. Any other state is invalid.
cash_not_owning_share = [­float('inf')] * (tx_limit + 1)
cash_not_owning_share[0] = 0
# cash_owning_share[k] = amount of cash at the end of the day,
# if we own the share, and we have sold k times so far.
# Initially we do not own any stock, so set the state to invalid.
cash_owning_share = [­float('inf')] * (tx_limit + 1)
for price in daily_price:
# Initialize the next day's states with ­Infinity,
# then update them with the best possible transition.
cash_not_owning_share_next = [­float('inf')] * (tx_limit + 1)
cash_owning_share_next = [­float('inf')] * (tx_limit + 1)
for prev_tx_count in range(tx_limit):
# Transition to the current day, owning the stock:
strategy_buy = cash_not_owning_share[prev_tx_count] ­ price
strategy_hold = cash_owning_share[prev_tx_count]
# Transitions to the current day, not owning the stock:
strategy_sell = cash_owning_share[prev_tx_count] + price
strategy_avoid = cash_not_owning_share[prev_tx_count]
# Compute the new states.
if prev_tx_count < tx_limit:
# Selling increases the tx_count by 1.
cash_not_owning_share_next[prev_tx_count + 1] = max(
cash_not_owning_share_next[prev_tx_count + 1],
strategy_sell)
# All other transitions keep tx_count the same.
cash_not_owning_share_next[prev_tx_count] = max(
cash_not_owning_share_next[prev_tx_count],
strategy_avoid)
cash_owning_share_next[prev_tx_count] = max(
cash_owning_share_next[prev_tx_count],
19

strategy_buy,
strategy_hold)
cash_not_owning_share = cash_not_owning_share_next
cash_owning_share = cash_owning_share_next
# We have multiple final states, depending on how many times we sold.
# The transaction limit may not have been reached.
# Choose the most profitable final state.
return max(cash_not_owning_share)

Master state machines


While you are reading this book, take your time to understand well how to model prob-
lems using state machines. Almost all dynamic programming problems can be solved
this way. This skill is useful not just for interviews, but also in general in your software
engineer career.
20 3 Change-making

3 Change-making

Given a money amount and a list of coin denominations, provide the combination of coins
adding up to that amount, that uses the fewest coins.

Example 1: Pay amount 9 using coin denominations [1, 2, 5]. The combination having
the fewest coins is [5, 2, 2]. A suboptimal combination is [5, 1, 1, 1, 1]: it adds up
to 9, but is using 5 coins instead of 3, thus it cannot be the solution.

Example 2: Pay amount 12 using coin denominations [1, 6, 10]. The combination having
the fewest coins is [6, 6]. A suboptimal combination is [10, 1, 1].

Clarification questions

Q: What result should be returned for total amount 0?


A: The empty list [].

Q: Is it possible that the amount cannot be paid with the given coins?
A: Yes. For example, 5 cannot be paid with coins [2, 4]. In such a situation, return None.

Solution 1: dynamic programming, top-down, 𝑂(𝑛𝑣) time

We can formulate a top-down dynamic programming solution if we model the problem as


a recurrence. For any non-zero amount that has to be paid optimally using the given coins,
we know that at least one of the coins has to be used. The problem is that we do not know
which one. If we knew, we could use that as a starting point to reach a subproblem: we could
subtract its value from the amount, then solve an instance of the problem for the remaining,
smaller amount. We would continue in this way until the remaining amount becomes 0.

However, we do not know which coin to choose first optimally. In this situation, we have
no other choice but try all possible options in brute-force style. For each coin, we subtract
its value from the amount, then solve by recurrence the subproblem—this leads to a candi-
date solution for each choice of the first coin. Once we are done, we compare the candidate
solutions and choose the one using the fewest coins.

Here is an example of how we would form the optimal change for amount 9, using coins [1,
2, 5]. We represent each amount as a node in a tree. Whenever we subtract a coin value
from that amount, we add an edge to a new node with a smaller value. Please mind that the
actual solution does not use trees, at least not explicitly: they are shown here only for clarity.
21

This diagram shows that for value 9, we have three options for choosing the first coin:

• We choose coin 1. We now have to solve the subproblem for value 9 − 1 = 8. Suppose
its optimal result is [5, 2, 1]. Then we add coin 1 to create the candidate solution
[5, 2, 1, 1] for 9.
• We choose coin 2. We now have to solve the subproblem for value 9 − 2 = 7. Suppose
the optimal result is [5, 2]. We add to it coin 2 to create the candidate solution [5,
2, 2] for 9.
• We choose coin 5. We now have to solve the subproblem for value 9 − 5 = 4. The
optimal result is [2, 2]. We add to it coin 5 to create the candidate solution [5, 2,
2] for 9.

Now that we are done solving the subproblems, we compare the candidate solutions and
choose the one using the fewest coins: [5, 2, 2].

For solving the subproblems, we use the same procedure. The only difference is that we
need to pay attention to two edge cases: the terminating condition (reaching amount 0), and
avoiding choices where we are paying too much (reaching negative amounts). To understand
these better, let’s take a look at the subproblems:
22 3 Change-making

Drawing the subproblems helps us see clearly the edge cases:


• When the amount becomes 0, we have to stop the iteration, since the subproblem is
solved and there is nothing left to be paid. We can see the 0 node in several of the
subproblem trees.
• When the amount goes below zero, the given amount cannot be formed with that
coin. For example, trying to pay amount 3 using coin 5 would require solving the
subproblem for amount -2, which does not make sense.
In addition to that, we can also notice that there are many redundancies among the sub-
problems. This is very important, as it affects the performance of the algorithm. We origi-
nally thought about solving the problem using brute force, which results in a slow algorithm:
𝑂(𝑛𝑣 ), where 𝑛 is the number of coins and 𝑣 is the value of the amount we have to pay. In other
words, the brute-force solution has exponential complexity, with very poor performance.
However, now that we know that there are redundancies among the subproblems, we can
cache their results to reduce the complexity to only 𝑂(𝑛𝑣): in each step we must try 𝑛 coins,
and we have up to 𝑣 steps (in the worst case, we pay 𝑣 with 𝑣 coins of value 1). This result is
great: we reduced the time complexity from exponential to polynomial!
We are now ready to write a first implementation of the recurrence, without caching (the
brute-force, exponential complexity solution). This is because we want to focus on the logic
of the recurrence, without distractions; we will add caching afterwards.
def make_change(coins, amount):
"""
Given a list of coin values, and an amount to be paid,
returns the shortest list of coins that add up to that amount.
If the amount to be paid is zero, the empty list is returned.
23

If the amount cannot be paid using the coins, None is returned.


"""
# Handle payment of amount zero.
if not amount:
return []
# Negative amounts cannot be paid.
if amount < 0:
return None
optimal_result = None
# Consider all the possible ways to choose the last coin.
for coin in coins:
# Solve a subproblem for the rest of the amount.
partial_result = make_change(coins, amount ­ coin)
# Skip this coin if the payment failed:
if partial_result is None:
continue
candidate = partial_result + [coin]
# Check if the candidate solution is better than the
# optimal solution known so far, and update it if needed.
if (optimal_result is None or
len(candidate) < len(optimal_result)):
optimal_result = candidate
return optimal_result

This algorithm implements the recurrence relation as explained above. Notice how we handle
the edge cases at the beginning of the function, before making any recursive calls, to avoid
infinite recursion and to keep the recursion logic as simple as possible.

Handle and eliminate edge cases early


Generally, it is preferrable to get edge cases out of the way as soon as possible, so that the
rest of the implementation is kept simple. This improves substantially the readability of
the code.

This implementation has exponential time complexity, since we have not implemented
caching yet. Let’s do that now.
Unfortunately, if we try to add caching simply adding the lru_cache decorator, we will have
a nasty surprise:
from functools import lru_cache

@lru_cache(maxsize=None)
def make_change(coins, amount):
...

This code throws the exception: TypeError: unhashable type: 'list'. This is caused by
24 3 Change-making

the inability to cache the argument coins. As a list, it is mutable, and the lru_cache deco-
rator rejects it. The decorator supports caching only arguments with immutable types, such
as numbers, strings or tuples. This is for a very good reason: to prevent bugs in case mutable
arguments are changed later (in case of lists, via append, del or changing its elements), which
would require invalidating the cache.

A joke circulating in software engineering circles says that there are only two hard problems
in computer science: cache invalidation, naming things, and off-by-one errors. To address
the former, the design of the lru_cache decorator takes the easy way out: it avoids having to
implement cache invalidation at all by only allowing immutable arguments.

Still, we need to add caching one way or another. We can work around the lru_cache limi-
tation if we notice that we do not actually need to cache the coins list—that is shared among
all subproblems. We only need to pass the remaining amount to be paid. So we write a helper
function that solves the subproblem, taking as argument only the amount. The coin list is
shared between invocations.

One way to implement this is to make the helper function nested inside the make_change
function, so that it has access to the coins argument of the outer function:
def make_change(coins, amount):
@lru_cache(maxsize=None)
def helper(amount):
...
return helper(amount)

Another way is to transform the make_change function into a method of a class, that stores
the list of coins in a class member. The helper could then be written as another method of
the class, ideally a private one. I think adding classes is overkill for what we have to do, so we
will not discuss this approach.

Here is the full solution that uses nested functions:


def make_change(coins, amount):
"""
Given a list of coin values, and an amount to be paid,
returns the shortest list of coins that add up to that amount.
If the amount to be paid is zero, the empty list is returned.
If the amount cannot be paid using the coins, None is returned.
"""
@lru_cache(maxsize=None)
def helper(amount):
# Handle payment of amount zero.
if not amount:
return []
# Negative amounts cannot be paid.
if amount < 0:
return None
25

optimal_result = None
# Consider all the possible ways to choose the last coin.
for coin in coins:
# Solve a subproblem for the rest of the amount.
partial_result = helper(amount ­ coin)
# Skip this coin if the payment failed:
if partial_result is None:
continue
candidate = partial_result + [coin]
# Check if the candidate solution is better than the
# optimal solution known so far, and update it if needed.
if (optimal_result is None or
len(candidate) < len(optimal_result)):
optimal_result = candidate
return optimal_result
return helper(amount)

How many comments should we write?


Well-written comments improve code readability, however there is a trade-off: too many
comments can be distracting, are a maintainability burden, and a sign that the code
might not be clear enough. However, for interviews, I prefer leaning towards more ver-
bosity, since we normally do not have time to refactor the code to perfection. Comments
can compensate for that.
A good rule of thumb is to use comments to explain why the code is doing something.
If you feel the need to explain what it is doing, it might be time to refactor that piece of
code into an appropriately-named function. If you do not have time to refactor during
the interview, you can add a comment like: “TODO: refactor into helper function.”

Solution 2: dynamic programming, bottom-up, 𝑂(𝑛𝑣) time


Once we have implemented the top-down solution, we can rewrite it as bottom-up: we start
from the amount 0, and keep adding coins in all possible ways until reaching the amount to
be paid:
def make_change(coins, amount):
# solutions[k] = optimal list of coins that add up to k,
# or None if no solution is known for k
solutions = [None] * (amount + 1)
# Initial state: no coins needed to pay amount 0
solutions[0] = []
# Starting from amount 0, find ways to pay higher amounts
# by adding coins.
paid = 0
while paid < amount:
26 3 Change-making

if solutions[paid] is not None:


for coin in coins:
next_paid = paid + coin
if next_paid > amount:
continue
if (solutions[next_paid] is None or
len(solutions[next_paid]) >
len(solutions[paid]) + 1):
solutions[next_paid] = solutions[paid] + [coin]
paid += 1
return solutions[amount]

This solution is iterative, which is an advantage compared to the top-down solution, since it
avoids the overheads of recursive calls. However, for certain denominations, it wastes time
by increasing the amount very slowly, in steps of 1 unit. For example, if coins = [100,
200, 500] (suppose we use bills), it does not make sense to advance in steps of 1.

In addition, a lot of space is wasted for amounts that cannot be paid. Let’s see if we can come
up with a better solution.

Solution 3: dynamic programming + BFS, bottom-up, 𝑂(𝑛𝑣) time


We can optimize the bottom-up solution by using a queue of amounts to be handled, instead
of an array. This helps in two ways: Firstly, it allows us to skip amounts that cannot be formed,
thus reducing execution time. Secondly, by not having to store amounts that cannot be paid,
memory usage is reduced.
Let’s implement it:
def simplest_change(coins, amount):
# solutions[k] = optimal list of coins that add up to amount k
# Amounts that cannot be paid are not stored.
solutions = {0: []}
# List of amounts that can be paid but have not been handled yet.
amounts_to_be_handled = collections.deque([0])
# Iterate over amounts in breadth­first order.
while amounts_to_be_handled:
paid = amounts_to_be_handled.popleft()
solution = solutions[paid]
if paid == amount:
# Due to BFS order, the first path reaching the
# required amount is the one using the smallest number
# of coins. Thus it is the optimal solution.
return solution
for coin in coins:
next_paid = paid + coin
if next_paid > amount:
27

# We can safely ignore amounts overshooting the


# target amount to be paid.
continue
if next_paid not in solutions:
solutions[next_paid] = solution + [coin]
amounts_to_be_handled.append(next_paid)
# No combination of coins could match the required amount,
# thus it cannot be paid.
return None

Notice how we are treating the (sub)problem space as a graph, which is explored in breadth-
first order (BFS). We start from the subproblem of forming the amount 0. From there, we
keep expanding using all the possible coin choices until we reach the required amount.

Let’s look at an example showing how the problem space exploration works for paying
amount 9 with coins [1, 2, 5]. We start with amount 0 and explore by adding a coin in all
possible ways. Here is the first level of the problem space graph:

The first level contains all amounts that can be paid using a single coin. After this step, we
have [1, 2, 5] in our BFS queue, which is exactly the list of nodes on the first level—hence
the name of breadth-first search.

To fill in the second level of the problem space graph, we continue the exploration a step
further for amounts 1, 2 and 5:
28 3 Change-making

The second level contains all possible amounts that can be paid with 2 coins. After this step,
we have [3, 6, 4, 7] in our BFS queue.

Notice that we discarded nodes corresponding to already known amounts, since these can
be paid with a similar or better solution (fewer coins). We have also discarded amounts that
exceed the value we have to pay (such as 10). This ensures that the graph size is bounded and
that it contains only valid/optimal nodes.

We still have not found a way to pay our target amount, 9. Let’s explore further, adding the
third level of the problem space graph:

Note that as we reached the target amount 9, we stopped drawing the rest of the level. As
it is on the third level of the tree, the amount can be paid with 3 coins. The combination is
29

2, 2 and 5, which can be found by walking the path from 0 to 9. This is the solution to the
problem.
Note that the exploration order was important: the breadth-first order guarantees that each
time we reach a new amount, the path we followed is the shortest possible in terms of num-
ber of coins used. Had we used instead another graph search algorithm, such as depth-first
search, the solution might not have been optimal.

Variant: count the number of ways to pay (permutations)


Given a money amount and a list of coin denominations, count in how many ways it is pos-
sible to pay that amount. The order matters, i.e. paying with a coin of 1 followed by a coin of
2 is considered distinct from paying with a coin of 2 followed by a coin of 1.
Example: To pay amount 3 with coins [1, 2], there are 3 possible ways: 1 + 2, 2 + 1 and
1 + 1 + 1.

Solution: dynamic-programming, top-down, 𝑂(𝑛𝑣)


Let’s analyze a slightly more complicated example: paying amount 6 with coins [1, 2, 5].
Here are all the possible ways to pay the amount:
• 6 = 5 + 1
• 6 = 1 + 5
• 6 = 2 + 2 + 2
• 6 = 2 + 2 + 1 + 1
• 6 = 2 + 1 + 2 + 1
• 6 = 2 + 1 + 1 + 2
• 6 = 1 + 2 + 2 + 1
• 6 = 1 + 2 + 1 + 2
• 6 = 1 + 1 + 2 + 2
• 6 = 2 + 1 + 1 + 1 + 1
• 6 = 1 + 2 + 1 + 1 + 1
• 6 = 1 + 1 + 2 + 1 + 1
• 6 = 1 + 1 + 1 + 2 + 1
• 6 = 1 + 1 + 1 + 1 + 2
• 6 = 1 + 1 + 1 + 1 + 1 + 1

From this list we do not see any particular rule, other than enumerating all the permutations
of the combinations of coins that add up to 6 (1 + 5, 2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 +
1 + 1 + 1 and 1 + 1 + 1 + 1 + 1 +1). This is not very helpful.

Let’s list the payments again but sorted in lexicographic order:


• 6 = 1 + 1 + 1 + 1 + 1 + 1
• 6 = 1 + 1 + 1 + 1 + 2
• 6 = 1 + 1 + 1 + 2 + 1
• 6 = 1 + 1 + 2 + 1 + 1
• 6 = 1 + 1 + 2 + 2
Random documents with unrelated
content Scribd suggests to you:
The foresaid Lords being fled as is aforesaide, Robert Trisilian a
Cornishman, Lord chiefe Justice to the King, had hid himselfe in an
Apothecaries house in the Sanctuary neere to the gate of Westminster, where
he might see the Lords going to the Parliament, and comming forth thereby to
learne what was done, for all his life time he did all things closely, but now his
craft being espied was turned to great folly. For on Wednesday the
seuenteenth of February he was betraied of his owne seruant, & about eleuen
of the clocke beforenoone, being taken by the Duke of Glocester, and in the
Parliament presented, so that the same day in the after noone hee was
drawne to Tyborne from the Tower of London through the Citie, & there had
his throat cut and his bodie was buried in the gray Friers Church at London.
This man had disfigured himselfe, as if he had beene a poore weake man, in a
frize coat, all old & torne, and had artificially made himselfe a long beard,
such as they called a Paris beard, and had defiled his face, to the end hee
might not bee knowen but by his speach. On the morrow, was executed sir
Nicholas Brembar, who had done many oppressions, & caused seditions in the
Citie, of whom it was saide, yᵗ whilest he was in full authoritie of Maioralitie,
hee caused a common payre of Stockes in euery ward, and a common Axe to
be made to behead all such as should bee against him, and it was further
said, that hee had indited 8000. & more of the best and greatest of the Citie,
but it was said that the said Nicholas was beheaded with the same Axe hee
hadde prepared for other: this man if hee hadde liued, hadde beene created
Duke of Troy, or of London by the name of Troy.
On the fourth of March Thomas Vske, Undershriue of London, & Iohn Blake
Esquire, one of the kings household, were drawne from the Tower to Tyborne
and there hanged and beheaded, the head of Thomas Vske was set vp ouer
Newgate, to the opprobry of his parents, which inhabited thereby.
Also on the 12. of May … Sir Iohn Bernes knight of the kings Court a lustie
young man, was in the same place [Tower hill] beheaded, sir Iohn Salisburie
knight was drawne from the Tower to Tyborne and there hanged.
Some of the accounts state that Brembre was hanged at Tyburn, but
Knighton says that he was beheaded on Tower Hill, the king having stipulated
with Parliament that he should not be drawn nor hanged. Walsingham says
that Little Troy was the new name intended to be given by Brembre to
London.[135]
1399. In this year took place several executions for the murder of the Duke
of Gloucester at Calais. John Hall was charged with having kept the door of
the room when the Duke was done to death by being smothered in a feather-
bed. On October 17th “the lordes were examyned what peyne the same John
Halle hadde desyrved ffor his knowyng off the deeth off the Duk off
Gloucestre: and the lordes seyden, that he were worthy the moste grete
peyne and penaunce that he myght have. And so the Juggement was that the
same John Halle shulde be drawe ffro the Tour off London to Tyborne, and
ther his bowelles shulde be brent and affterwarde he shulde be hangid and
quarterid and byhedid. And his heede y-brouht to the same place, wher the
Duk off Gloucestre was murdred.”[136]
1400. After the deposition of Richard II. and the coronation of Henry IV. a
conspiracy was formed to surprise Henry at a tournament to be held at
Windsor in December, 1399. The plot was made known by the Earl of Rutland,
one of the conspirators. Henry collected an army in London, and set out for
the rebels’ camp near Windsor. The rebels retreated to Cirencester, where
they were overthrown. According to the Chronicle of London (1827), Sir
Thomas Blount, Sir Bennet Shelley, Thomas Wyntreshull, and about twenty-
seven others, were executed at Oxford. “Afterwards was taken Sr. Bernard
Brocas, Sr. Thomas Schelley, Maudelyn parson, Sr. William Fereby prest: and
there were drawen, hanged, and beheded at Tyborne.” There is, however,
great confusion in the various accounts. The Grey Friars Chronicle, for
instance, says that Sir Bernard Brocas was beheaded in Cheapside. In
Chroniques de Waurin, and in a manuscript in the Bibliothèque Nationale, is a
long account of the execution of Sir Thomas Blount. Reference has sometimes
been made to it as illustrating the cruelty of the times. Cruel enough they
were: so cruel that there existed no need to overcharge a narrative. But this
account of the execution is clearly in great part a work of imagination. Sir
Thomas is represented as sitting, disembowelled, near the fire in which his
bowels had been burnt, and in this condition he holds a long conversation
with Sir Thomas Erpingham. Finally, the executioner asks Sir Thomas whether
he would like to drink. Sir Thomas replies, “Nennil, car je ne le scauroye où
mettre.”[137]

The partisans of the deposed Richard refused to believe that he was dead:

1402. In the meane time while the kyng was thus occupied in Wales,
certain malicious and cruel persons enuiyng and malignyng in their heartes
that king Henry contrary to the opinion of many, but against the will of mo
had so shortely obteigned and possessed the realme and regalitie, blased
abrode & noised daily amongest the vulgare people that kyng Richard (whiche
was openly sene dead) was yet liuying and desired aide of the common
people to repossesse his realme and roiall dignitie. And to the furtheraunce of
this fantasticall inuencion partly moued with indignacion, partely incensed
with furious malencolie, set vpon postes and caste aboute the stretes railyng
rimes, malicious meters and tauntyng verses against King Henry and his
proceedynges. He beyng netteled with these vncurteous ye vnuertuous
prickes & thornes, serched out the authours, and amongest other were found
culpable of this offence and crime, sir Roger Claryngdon knight, and eight
gray Friers whiche according to their merites and desertes were strangeled at
Tiborne and there put in execution.[138]
Walter de Baldocke, formerly Prior of Laund in Leicestershire, a ninth
minorite friar, and a servant of Sir Roger, were also executed.[139]
1404. The olde Countesse of Oxford, mother to Robert de Vere Duke of
Ireland did cause such as were familiar with her, to brute throughout all the
parts of Essex, that king Richard was aliue, and that he should shortely come
& chalenge his olde estate and dignitie. She caused many harts of silver, and
some of golde to be made for badges, such as king Richard was wont to
bestowe on his knights, Esquiers & friends, that distributing them in the kings
name, she might the sooner allure the knights, and other valiant men of the
Countrey, to be at her will and desire.
Also the fame and brute which daily was blazed abroad by one William
Serle, sometimes of K. Richards chamber, that the same King Richard was in
Scotland, and tarryed with a power of French & Scottishmen, caused many to
beleeue that he was aliue. This William Serle had forged a priuie Seale in the
said Richards name, and had sent diuers comfortable letters vnto such as
were familiar with K. Richard, by which meanes, many gaue the greater credit
to the Countesse, insomuch, that some religious Abbots of that country did
giue credit vnto her tales who afterward were taken at the Kings
commaundement and imprisoned, because they did beleeue and giue credit
to the Countesse in this behalfe, and the Countesse had all her goods
confiscate, and was committed to close prison: and William Serle, was drawn
from pomfret, through the chiefest Citties of England, and put to death at
London.[140]
1424. The Parliament sitting in this year “ordained that what prysoner for
grand or petty treason was committed to ward, & after wilfully brake or made
an escape from the same, it should bee deemed pettie treason.” Sir John
Mortimer lay in the Tower, accused of divers points of treason. “Which John
Mortimer, after the statute aforesaid escaped out of the tower, and was taken
againe vpon the tower wharfe sore beaten and wounded, and on the
morrowe brought to Westminster, and by the authoritie of the said parliament,
hee was drawne to Tyburne, hanged & headed.” (Stow, Annals, p. 365.) Stow
refers to Hall, who says: “In the tyme of which Parliament also, whether it
were, either for deserte or malice, or to auoyde thynges that might chaunce,
accordyng to a prouerbe, whiche saith, a dead man doth no harme: Sir Iohn
Mortimer … was attainted of treason and put to execution: of whose death no
small slaunder arose emongest the common people.”[141]
1427. Ande that same yere a theffe that was i-callyd Wille Wawe was
hangyd at Tyborne (Gregory’s Chronicle, p. 161).
Insignificant as this record appears, it is really of great interest. As the
present annals show, ordinary crimes and their punishment received little or
rather no attention from the chroniclers. We have now traversed two and a
half centuries since the first recorded execution that we can put to the
account of Tyburn. We have found but one case, that of the terrible tragedy of
the murdered cook of Chepe, and the judicial error resulting in the execution
of four or five innocent persons, in which the actors or sufferers were of
humble rank. Gregory’s Chronicle is supposed to have been written by William
Gregory, skinner, mayor of London. It is certain that the author was a citizen
of London. Being this, the phases of daily life in London would naturally have
for him a greater interest than for the monk who looked on the world from
the scriptorium of his monastery. To the fact that Gregory was a citizen of
London we doubtless owe this notice—too brief—of Wille Wawe. The hanging
of thieves was too common to attract attention. We shall admit the probability
that Wille was distinguished from the rest of his tribe by superior daring or
success: had he, perhaps, robbed the author of the Chronicle?
1437. Also the same yere on William Goodgrom, of London, corsour, for
scleynge of a man of court in Hosyere Lane be syde Smythfeld, was hangen
at Tybourne (Chronicle of London, 1827, p. 123.)
A coursour, or courser, was a dealer in horses. (Riley, “Memorials of London
and London Life,” p. 366 and note.)
1441. Roger Bolinbrooke, a great Astronomer, with Thomas Southwell, a
Chanon of Saynt Stephens Chappell at Westminster, were taken as
conspiratours of the Kings death, for it was said, that the same Roger shoulde
labour to consume the kings person by way of Negromancie, & the said
Thomas should say Masses in the lodge of Harnesey park beside London,
upon certaine instruments, with the which the said Roger should vse his craft
of Negromancie, against the faith, and was assenting to the said Roger, in all
his workes. And the 5. and twentith day of July being Sun-day, Roger
Bolinbrooke, with all his instruments of Negromancie, that is to say, a chayre
paynted wherein he was wont to sit, vppon the 4. corners of which chayre
stoode foure swords, and vppon euery sword an image of copper hanging,
with many other instruments: hee stoode on a high Scaffolde in Paules
Churchyard, before yᵉ crosse, holding a sword in his right hand, and a scepter
in his left, arrayed in a maruellous attire, and after the Sermon was ended by
maister Low Byshop of Rochester, he abiured all articles longing to the crafte
of Negromancie or missowning to the faith, in presence of the Archb. of
Canterbury, the Cardinall of Winchester, the byshop of London, Salisbury and
many other.
On the Tuesday next following, dame Elianor Cobham, daughter to Reginald
Cobham Lord of Stirbrough: Dutchesse of Glocester fledde by night into the
Sanctuary at Westminster, which caused her to be suspected of treason.
In the meane time Roger Bolinbrooke, was examined before the Kings
Counsaile, where he confessed that he wrought the saide Negromancie at the
stirring and procurement of the said Dame Elianor, to know what should befall
of her, and to what estate she should come, whereuppon shee was cited to
appeare before Henry Chicheley, Archbishop of Canterbury. Henry Beaufort
bishoppe of Winchester Cardinall: Iohn Kempe Archb. of Yorke Cardinall:
William Ascothe bishop of Salisburie, & other in Saynt Stephens Chappell at
Westminster, there to answere to certaine Articles in number 28. of
Negromancie, witch-crafte, sorcerie, heresie, and treason, where when shee
appeared, the foresaide Roger was brought forth to witnes against her, and
said, that shee was cause and first stirred him to labour in the sayd Art. Then
on the 11. of August, shee was committed to the ward of Sir John Steward,
Sir William Wolfe Knights, Iohn Stanley Esquier, and other, to be conueyed to
the Castle of Leedes, there to remaine till 3. weekes after Michaelmas.
Shortly after a commission was directed to the Earles of Huntington,
Stafford, Suffolke and Northumberland, the treasurer sir Ralph Cromwall, Iohn
Cornwall, Lord Fanhope, sir Walter Hungerforde, and to certaine Judges of
both Benches, to enquire of all manner of treasons, sorceries, & other things
that might be hurtfull to the Kings person, before whome the sayde Roger,
and Thomas Southwell, as principals, and Dame Elianor as accessary, were
indicted of treason in the Guilde Hall of London.
There was taken also Margery Gurdemaine a witch of Eye besides
Westminster, whose sorcerie and witchcrafte the said Elianor hadde long time
vsed, and by her medicines & drinkes enforced the Duke of Glocester to loue
her, and after to wedde her, wherefore, and for cause of relapse, the same
Witch was brent in Smithfield, on the twentie-seauen day of October.
The 21. of October, in the Chappell beforesaid, before the Byshops, of
London Robart Gilbart, of Lincolne, William Alnewike, of Norwich Thomas
Brouns, the sayde Elianor appeared, and Adam Molins Clarke of the Kinges
Counsell read certaine articles obiected against her of Sorcerie and
Negromancy, whereof some shee denyed, and some shee granted.
The three and twentith of October Dame Elianor appeared againe, and
witnesses were brought forth and examined: and she was conuict of the saide
Articles: then was it asked if she would say any thing against the witnesses,
whereunto shee answered nay, but submitted her selfe. The 27. day of
October shee abiured the articles, & was adioyned to appeare againe the
ninth of Nouember. In the meane tyme, to wit, on the 26. of October Thomas
Southwell dyed in the Tower of London, as himselfe had prophesied that he
should neuer die by Justice of the Law.
The 9. of November Dame Elianor appeared before the Archbyshop & other,
in the sayde Chappell, and receiued her penance, which shee perfourmed.
On Monday the 13. of November, she came from Westminster by water, and
landed at the Temple bridge, from whence with a taper of waxe of 2. pound in
her hand, she went through Fleetestreete, hoodlesse (saue a Kerchefe) to
Pauls, where shee offered her taper at the high Altar. On the Wednesday next
shee landed at the Swan in Thamis streete, and then went through Bridge-
streete, Grace church streete, straight to Leaden Hall, & so to Christ church by
Aldegate. On Friday she landed at Queene Hiue, and so went through Cheape
to Saynt Michaels in Cornehill, in forme aforesaid: at all which times the Maior,
Sherifes, & crafts of London, receiued her and accompanied her. This beeing
done shee was committed to the ward of sir Thomas Stanley, wherein shee
remained during her life in the castle of Chester, hauing yeerely 100. markes
assigned for her finding, in the 22. of Henry the sixt, shee was remoued to
Kenilworth, there to be safely kept whose pride, false, couetise, and lechery,
were cause of her confusion.
The 18. of November Roger Bolingbroke, with Sir Iohn Hum priest, &
William Woodham Esquier, were arraigned in the Guildhal of London, where
the said Iohn and William hadde their Charters, but Roger Bolingbroke was
condemned, and had iudgement of Sir Io. Hody, Chiefe Justice of the Kings
Bench, and the same day he was drawne from the Tower to Tyborne and
there hanged and quartered: and when the said Roger should suffer, he sayd
that he was neuer guilty of any treaso̅ against the Kings person, but he had
presumed too far in his cunning, whereof he cryed God mercy: and the
Justice that gaue on him iudgement liued not long after.[142]
1446. Iohn Dauid appeached his master William Catur, an armorer dwelling
in S. Dunstons parish in Fleetstreet, of treason, & a day being assigned them
to fight in Smithfield, yᵉ master being welbeloued, was so cherished by his
friends & plied so wʰ wine, that being therwith ouercome was also vnluckely
slaine by his seruant: but that false seruant (for he falsely accused his master)
liued not long vnpunished, for he was after hanged at Tyborne for felony
(Stow, p. 385).
Shakespeare has taken this incident for a scene in the Second Part of King
Henry VI. Act 2, sc. 3, where the armourer is called Horner, and his servant
Peter. In the play, Horner, smitten to death, is made to confess his treason.
1447. And a-non aftyr the dethe of the Duke of Glouceter there were a
reste [arrested] many of the sayde dukys [servants] to the nombyr of xxxviij
squyers, be-syde alle othyr servantys that nevyr ymagenyd no falsenys of the
[that] they were put a-pon of. And on Fryday the xiiij day of Juylle nexte
folowynge by jugement at Westemyster, there by fore v personys were
dampnyd to be drawe, hanggyd, and hyr bowellys i-brente be fore hem, and
thenne hyr heddys to be smetyn of, ande thenne to be quarteryde, and every
parte to be sende unto dyvers placys by assygnement of the jugys. Whyche
personys were thes: Arteys the bastarde of the sayde Duke of Glouceter, Syr
Rogger Chambyrlayne knyght, Mylton squyer, Thomas Harberde squyer,
Nedam yeman, whyche were the sayde xiiij day of Juylle i-drawe fro Syn
Gorgys thoroughe owte Sowthewerke and on Londyn Brygge, ande so forthe
thorowe the cytte of London to the Tyborne, and there alle they were
hanggyde, and the ropys smetyn a-sondyr, they beynge alle lyvynge, and
thenne, ar any more of any markys of excecusyon were done, the Duke of
Sowthefolke brought them alle yn generalle pardon and grace from our lorde
and soverayne Kynge Harry the vjᵗᵉ.[143]
1455. Also this yere was a grete affray in London agaynst the Lombardes.
The cawse began of a yong man that took a Dagger from a straunger and
broke it. Wherefore the yong man was sent for vnto the Mair and Aldermen
beyng at Guyldehall, and there by theym he was commytted for his offence to
One of the Countours: and then the mair departyng from the hall toward his
mancion to dyner, in Chepe met with him a grete company of yong men of the
Mercery, as Apprentices and other lowse men: and taried the Mair and the
Sheriffes still in Chepe, not suffryng hym to depart till they had their ffelow,
beyng in pryson, as is aforsaid, delyuered: and so by force delyuered their
felaw oute of pryson. Wherevpon the same evenyng the hand craftymen
Ranne vnto the lombardes howsys, and Robbyd and dispoilid Dyuers of
theym. Wherfor the Mair and Shyreffes, with thassistence of good and
weldisposed people of the Cite, with greate Jubardy and labour Drove theym
thens, and commytted some of theym that had Robbid to Newgate. Whervpon
the yong man, which was rescoed by his feloship, seying the greate rumour
folowyng vpon his occasion Departed and went to Westm’, and ther abode as
sayntuary man: Wherby he saved his lyf. ffor anone vpon this came down an
Oye determyne, for to do Justice vpon alle theym that soo had Rebellid in the
Cyte: vpon which sat that tyme with the Mayr the Duke of Bokyngham with
dyuers other grete lordes, for to see Execucion doon. But the Comons of the
Cyte did arme theym secretely in their howses, and were in purpos to haue
Rungyn the Comon Bell, callid Bowe Bell: But they were lette by sadde and
weladuysed men, which when it come to the knowleyge of the Duke of
Bokyngham and other lordes their beyng with hym, they Incontynently arose,
feryng longer to abyde: for it was shewed to theym that all the Cite wold arise
vpon theym. But yet notwithstondyng in Conclusion ij or iij mysdoers of the
Cite were adjuged for the Robbery, And were hanged at Tybourne: and this
doon the kyng and the quene and other lordes Rood to Coventre, and with
drewe theym from London for these cawsis (Chronicles of London (Kingsford)
1905, pp. 166, 167).
1467. Alle soo that same yere there were many chyrchys robbyd in the
cytte of London only of the boxys with the sacrament. And men had moche
wondyr of thys, and sad men demyd that there had ben sum felyschippe of
heretykys assocyat to gederys. But hyt was knowe aftyr that it was done of
very nede that they robbyd, wenyng unto the thevys that the boxys hadde
ben sylvyr ovyr gylt, but was but copyr. And by a copyr smythe hit was a
spyde of hyr longe contynuans in hyr robbory. At a tyme, alle the hole
feleschippe of thevys sat at sopyr to gedyr, and had be fore hem fulle goode
metys. But that copyr smythe sayde, “I wolde have a more deynty mosselle of
mete, for I am wery of capon, conynge, and chekyns, and such smalle metes.
And I mervyl I have ete ix goddys at my sopyr that were in the boxys.” And
that schamyd sum of them in hyr hertys. Ande a smythe of lokyers crafte, that
made hyr instrumentes to opyn lockys, was ther that tyme, for hyt was sayed
at the sopyr in hys howse. And in the mornynge he went to chyrche to hyre a
masse, and prayde God of marcy; but whenn the pryste was at the levacyon
of the masse he myght not see that blessyd sacrament of the auter. Thenn he
was sory, and a bode tylle a nothyr pryste wente to masse and helpyd the
same pryste to masse, and say [saw] howe the oste lay a-pon the auter and
alle the tokyns and sygnys that the pryste made; but whenn the pryste hylde
uppe that hooly sacrament at the tyme of levacyon he myght se no thynge of
that blessyd body of Chryste at noo time of the masse, not somoche at Agnus
Dei; and thenn he demyd that hit had ben for febyllenys of hys brayne. And
he went unto the ale howse and dranke a ob. [a halfpennyworth] of goode
alle, and went to chyrche agayne, and he helpyd iij moo prystys to masse,
and in no maner a wyse he ne myght se that blessyd sacrament; but then
bothe he and hys feleschyppe lackyd grace. And in schorte tyme aftyr iiij of
hem were take, and the same lokyer was one of yᵉ iiij, and they were put in
Newegate. And by processe they were dampnyd for that trespas and othyr to
be hangyd and to be drawe fro Newegate to Tyborne, and soo they were. And
the same daye that they shulde dy they were confessyd. And thes iiij docters
were hyr confessourys, Mayster Thomas Eberalle, Maystyr Hewe Damylett,
Maystyr Wylliam Ive, and Maystyr Wylliam Wryxham. Thenn Mayster Thomas
Eberalle wente to masse, and that lokyer aftyr hys confessyon myght see that
blessyd sacrament welle i-nowe, and thenne rejoysyd and was gladde, and
made an opyn confessyon by fore the iiij sayde docters of devynyte. And I
truste that hyr soulys ben savyd.[144]
1468. That yere were meny men a pechyd of treson, bothe of the cytte
and of othyr townys. Of the cytte Thomas Coke, knyght and aldyrman, and
John Plummer, knyght and aldyrman, but the kyng gave hem bothe pardon.
And a man of the Lorde Wenlockys, John Haukyns was hys name, was hangyd
at Tyburne and be heddyd for treson.[145]
1495. The 22. of Februarie were arraigned in Guildhall at London foure
persons, to witte, Thomas Bagnall, Iohn Scot, Ihon Hethe, and Iohn
Kenington, the which were Sanctuarie men of Saint Martin le grand in London,
and lately before taken thence, for forging seditious libels, to the slander of
the King, and some of his Councell: for the which three of them were
adiudged to die, & the fourth named Bagnall, pleaded to be restored to
sanctuary: by reason whereof he was repriued to the Tower till the next
terme, and on the 26 of February the other three with a Flemming, and
Robert Bikley a yeoman of the Crown were all fiue executed at Tyborne (Stow,
ed. Howes, p. 479).
1483. December 4. Four yeomen of the Crown were drawn from
Southwark to Tyburn, and “there were hanged all” (Chronicle of London,
Kingsford, 1905, p. 192).
1495. In this year Perkin Warbeck, a pretender, “A yoongman, of visage
beautifull, of countenance demure, of wit subtil,” made a descent on the
English coasts:—But Perken would not set one foote out of his Shippe, till he
sawe all thinges sure; yet he permitted some of his Souldiours to goe on
lande, which being trained forth a prettie way from their Shippes, and seeing
they coulde haue no comfort of the Countrey, they withdrew againe to their
Shippes: at which withdrawing, the Maior of Sandwich, with certaine
commons of the Countrey, bikered with the residue that were vppon lande,
and tooke aliue of them 169. persons, among the which were fiue Captaines
Mountfort, Corbet, White Belt, Quintin & Genine. And on the twelfth of Julie,
Syr Iohn Pechy, Sheriffe of Kent, bought vnto London bridge those 169.
persons, where the Sheriffes of London, Nicholas Alwine and Iohn Warner
receiued and conueied them, railed in robes like horses in a cart, vnto the
tower of London, and to Newgate, and shortlie after to the number of 150.
were hanged about the sea coasts in Kent, Essex, Sussex, and Norffolke; the
residue were executed at Tiborne and at Wapping in the Whose besides
London; and Perken fled into Flanders (Stow, ed. Howes, p. 479).
1499. Perkyn (of whome rehersall was made before) beyng now in holde,
coulde not leaue with the destruccion of him selfe, and confusion of other that
had associate them selfes with him, but began now to study which way to flye
& escape. For he by false persuasions and liberall promises corrupted
Strangweyes, Blewet, Astwood and long Rogier hys kepers, beynge seruantes
to syr Ihon Dygby, lieutenaunt. In so muche that they (as it was at their
araynment openly proued) entended to haue slayn the sayde Master, and to
haue set Perkyn and the Erle of Warwyke at large; which Erle was by them
made preuy of this enterprice, & thereunto (as all naturall creatures loue
libertie) to his destruccion assented. But this craftie deuice and subtil
imaginacion, beyng opened and disclosed, sorted to none effect, and so he
beyng repulsed and put back from all hope and good lucke with all hys
complices and confederates, and Ihon Awater sometyme Mayre of Corffe in
Ireland, one of his founders, and his sonne, were the sixten daye of
Nouembre arreyned and comdempned at Westmynster. And on the thre and
twenty daye of the same moneth, Perkyn and Ihon Awater were drawen to
Tyborne, and there Perkyn standyng on a little skaffolde, redde hys
confession, which before you haue heard, and toke it on hys death to be true,
and so he and Ihon Awater asked the kyng forgeuenes and dyed paciently.
(Hall’s Chron., ed. 1809, p. 491).
1497. Henry had prepared “a puissaunt and vigorious army to inuade
Scotland,” when domestic troubles arose:—“When the lord Dawbeney had his
army assembled together and was in his iourney forward into Scotlande, he
sodeinly was stayed and reuoked agayne, by reason of a newe sedicion and
tumult begonne within the realme of England for the subsedy whiche was
graunted at the last parliament for the defence of the Scottes with all
diligence and celeritee, whiche of the moost parte was truely satisfied and
payde. But the Cornish men inhabityng the least parte of the realme, and
thesame sterile and without all fecunditee, compleyned and grudged greatly
affirmyng that they were not hable to paye suche a greate somme as was of
theim demaunded. And so, what with angre, and what with sorrowe,
forgettynge their due obeysaunce, beganne temerariously to speake of the
kyng him selfe. And after leuyng the matter, lamentyng, yellyng, & criyng
maliciously, sayd, that the kyngs counsayll was the cause of this polling and
shauing. And so beyng in aroare, ii. of thesame affinitee, the one Thomas
Flamocke, gentleman, learned in the lawes of the realme, and theother
Mighell Ioseph a smyth, men of high courages and stoute stomackes, toke
vpon theim to be captaynes of this vngracious flocke and sedicious
company.… These capiteynes exhorted the common people to put on harneys,
& not to be afearde to folowe theim in this quarell, promisyng theim that they
shoulde do no damage to any creature, but only to se ponyshement and
correccion done to such persons which were the aucthors & causers that the
people were molested and vexed with such vnreasonable exaccions and
demaunds.” The rebels marching towards London, “the kyng perceauyng the
cyuile warre to approche & drawe nerer & nerer, almost to his very gates,
determined with all his whole powre to resist and represse thesame.…
Wherfore he reuoked agayn the lord Dawbeney which as you have heard, was
with a puyssaunt army goyng into Scotland, whose army he encreaced and
multiplied with many picked and freshe warryers, that he might the better,
and with lesse laboure ouercome these rebelles.”
At Wells the rebels were joined by Lord Audley, who became their leader.
They reached Blackheath where, although they captured Lord Dawbeney
himself, they were overcome. “There were slain of the rebelles whiche fought
& resisted ii. thousand men & moo & taken prisoners an infinite nombre, &
emongest theim the black smyth & chiefe capteins.” The king pardoned all the
leaders “sauyng the chiefe capiteynes & firste aucthors of that mischiefe, to
whome he woulde neither shewe mercy nor lenity. For he caused the Lord
Audeleigh to be drawen from Newgate to the Towre hil in a cote of his awne
armes peinted vpon paper, reuersed and al to torne, & there to be behedded
the xxviii. day of Iuyn. And Thomas Flamock and Myghell Ioseph he
commaunded after the fassyon of treytours to be drawen, hanged, and
quartered [at Tyburn], & their quarters to be pytched on stakes, & set vp in
diuerse places of Cornewhale, that their sore punyshementes and terrible
execucions for their treytorous attemptes and foolish hardy enterprices, might
be a warning for other herafter to absteyne from committing lyke cryme and
offence.”
Michael Joseph, the blacksmith, “was of such stowte stomack & haute
courage, that at thesame time that he was drawen on the herdle toward his
death, he sayd (as men do reporte) that for this myscheuous and facinorous
acte, he should haue a name perpetual and a fame permanent and immortal”
(Hall’s Chronicle, ed. 1809, pp. 476-80).
1502. Vpon Monday, beyng the second day of May, was kept at the Guyld
hall of London an Oyr determyne, where sat the Mayre, the Duke of
Bokyngham, Therle of Oxenford, with many other lordes, Juges, and
knyghtes, as commyssioners: before whome was presented as prisoners to be
enquyred of, sir James Tyrell, and sir John Wyndam, knyghtes, a Gentilman of
the said sir James, named Wellesbourn, and one other beyng a shipman.…
Vpon ffriday folowyng, beyng the vjᵗᵉ day of May and the morowe after the
Ascension of our Lord, Sir James Tyrell and the forsaid Sir John Wyndam,
knyghtes, were brought out of the Toure to the scaffold vpon the Toure hill,
vpon their ffete, where they were both beheded. And the same day was the
forsaid Shipman laied vpon an herdyll, and so drawen from the Toure to
Tybourne, and there hanged, hedid, and quartered. And the forenamed
Wellysbourn Remayned still in prison at the kynges commaundment and
pleasure (Chronicles of London, Kingsford, 1905, p. 256).
1523. About eight miles from Bath is a village, Farleigh-Hungerford, known
locally as Farleigh Castle from the extensive ruins of what was once a proud
castle full of life and movement. As the name denotes, the Castle was the
seat—one of the seats—of the Hungerford family, established at Heytesbury
so far back as the twelfth century. In 1369 the Hungerford of his day, Sir
Thomas Hungerford, purchased the manor of Farleigh. In 1383 he obtained
permission to convert the manor-house into a castle. Sir Thomas made a
great figure in the world: he is the first person formally mentioned in the rolls
of Parliament as holding the office of Speaker.
Wandering among the vast ruins, the visitor, prompted by his guide-book,
will not fail to note the spot where was formerly a furnace. If there is in all
England a place where ghosts should walk, where the midnight owl should
hoot, it is in the ruins of Farleigh Castle. For, now nearly four hundred years
ago, Farleigh Castle was the scene of a terrible crime, expiated, perhaps in
part only, by the death on the scaffold of one of the principal criminals, and of
one or two of the abettors of an over-reaching ambition, or of a lawless
passion.
In the Chronicle of the Grey Friars is the following passage:—
1523. And this yere in Feuerelle the xxᵗʰ day was the lady Alys Hungrford
was lede from the Tower vn-to Holborne, and there put in-to a carte at the
church-yerde with one of hare seruanttes, and so carred vn-to Tyborne, and
there bothe hongyd, and she burryd at the Grayfreeres in the nether end of
the myddes of the churche on the northe syde.
Stow, who in his Annals has a marginal reference to this Chronicle, adds a
particular omitted by the earlier Chronicler—that the lady was executed for
the murder of her husband. The curiosity of antiquaries was naturally excited
by this story, half-revealed, half-concealed. The first discovery made was of
the inventory of the lady’s goods. This was printed in Archæologia, vol. xxxviii.
(1860). The goods fell into the hands of the king by forfeiture: so it came
about that an inventory existed. It is a list of plate and jewels, of sumptuous
hangings, “an extraordinary collection of valuable property.”
Finally more of the story was disclosed by Mr. William John Hardy, in the
Antiquary of December, 1880. It is one of the greatest interest.
The lady’s name is given as Alice, both by the chronicler and by Stow in his
Annals. Stow also, in a list of the monuments in the Grey Friars church,
mentions one to “Alice Lat Hungerford, hanged at Tiborne for murdering her
husband” (Survey, ed. Thoms, p. 120).
But the lady’s name was not Alice, but Agnes. She was the second wife of
Sir Edward Hungerford, who was first married to Jane, daughter of John Lord
Zouche of Haryngworth. The date of the death of Sir Edward’s first wife is not
known. If we knew it there might arise a new suspicion. Nor do we know the
date of Sir Edward’s second marriage, but it must have been not earlier than
the latter half of 1518.
Sir Edward Hungerford was one of the great ones of the land. In 1517 he
was sheriff for Wilts: in 1518 for Somerset and Dorset. In 1520 he was
present at the Field of the Cloth of Gold. In 1521 he was in Commission of the
Peace for Somerset.
We have seen that the original seat of the family was at Heytesbury, in
Wilts, distant from Farleigh about twelve miles, and here Sir Edward
commonly lived. In addition to Farleigh Castle, Sir Edward possessed a great
London house, standing with its gardens where now is Charing Cross station.
From this house were named Hungerford Street and Hungerford Stairs. On
the site of the house and garden was built by a later Hungerford, in the reign
of Charles II., Hungerford Market, which continued till the site was taken for
the railway station. The foot-bridge over the Thames, starting from this point,
was known as Hungerford Bridge, a name still sometimes given to its
successor, the existing railway bridge. It was in Hungerford Street that Charles
Dickens, a child of ten, began life by sticking labels on blacking bottles.
Sir Edward made his will on December 14, 1521. By it, after leaving legacies
to certain churches and friends, “the residue of all my goods, debts, cattalls,
juells, plate, harnesse, and all other moveables whatsoever they be, I freely
geve and bequeth to Agnes Hungerforde my wife.” She was also appointed
sole executrix. Sir Edward died on January 24, 1522, six weeks after making
this will.
The husband murdered was not Sir Edward Hungerford, but a first
husband, John Cotell. The outlines of the story are given by Mr. Hardy from
the Coram Rege Roll for Michaelmas term, 14 Henry VIII.:—
“On the Monday next after the feast of S. Bartholomew, in the 14th year of
the now king (25 August, 1522), at Ilchester, before John Fitz James and his
fellow-justices of oyer and terminer for the county of Somerset, William
Mathewe, late of Heytesbury, in the county of Wilts, yeoman, William Inges,
late of Heytesbury, in the county aforesaid, yeoman, [were indicted for that]
on the 26th July, in the 10th year of the now Lord the King (1518), with force
and arms made an assault upon John Cotell, at Farley, in the county of
Somerset, by the procurement and abetting of Agnes Hungerford, late of
Heytesbury, in the county of Wilts, widow, at that time the wife of the
aforesaid John Cotell. And a certain linen scarf called a kerchier (quandam
flameam lineam vocatam ‘a kerchier’) which the aforesaid William and William
then and there held in their hands, put round the neck of the aforesaid John
Cotell, and with the aforesaid linen scarf him, the said John Cotell, then and
there feloniously did throttle, suffocate, and strangle, so that the aforesaid
John Cotell immediately died, and so the aforesaid William Maghewe
[Mathewe] and William Inges, by the procurement and abetting of the
aforesaid Agnes, did then and there feloniously murder, &c., the aforesaid
John Cotell, against the peace of the Lord the King, and afterwards the
aforesaid William, and William, the body of the aforesaid John Cotell did then
and there put into a certain fire in the furnace of the kitchen in the Castle of
Farley aforesaid, and the body of the same John in the fire aforesaid in the
Castle of Farley aforesaid, in the county of Somerset aforesaid, did burn and
consume.”
The indictment charged that Agnes Hungerford, otherwise called Agnes
Cotell, late of Heytesbury, in the county of Wilts, widow, late the wife of the
aforesaid John Cotell, well knowing that the aforesaid William Mathewe and
William Inges had done the felony and murder aforesaid, did receive, comfort
and aid them on 28th December, 1518.
Such was the indictment, “which said indictment the now Lord the King
afterwards for certain reasons caused to come before him to be determined,
&c.” All three accused were committed to the Tower of London; “and now, to
wit, on Thursday next after the quinzaine of St. Martin (November 27, 1522),
in the same term, before the Lord the King at Westminster, in their proper
persons came the aforesaid William Mathewe, William Inges, and Agnes
Hungerford, brought here to the bar by Sir Thomas Lovell, Knight, Constable
of the Tower of London, by virtue of the writ of the Lord the King to him
thereupon directed.”
So they were brought to trial, and all found guilty. William Mathewe and
Lady Agnes Hungerford were sentenced to be hanged; William Inges pleaded
benefit of clergy. The plea was contested on the ground that he had
committed bigamy, by which he lost his right to claim his clergy. The question
was referred to the Bishop of Salisbury, who proved that Inges was a
bigamist, and Inges was therefore also sentenced to be hanged. There is no
record of a third execution; the servant hanged at the same time as Lady
Agnes Hungerford was therefore William Mathewe.
The story is still incomplete: it may be hoped that records somewhere exist
the discovery of which will tell us more. It will be observed that Lady
Hungerford was indicted, not for the murder of her husband, but for
receiving, comforting, and aiding, five months after the fact, those who, by
her procurement, had murdered him. What was the nature of the comfort and
aid thus given? Had something of the story leaked out, and was Lady
Hungerford compelled to protect the murderers? Again, what part in the
tragedy was played by Sir Edward? It is clear that at the time of the murder
Agnes Cotell was supreme at Farleigh Castle. She brought over from Sir
Edward’s other house the two men who committed the deed; she was so fully
in command of Farleigh Castle that she could secure the use of the furnace
for disposing of the body of the murdered man. It is not difficult to divine
what were the relations between Sir Edward and the wife of Cotell, who was
probably employed in some capacity on the estate. How did Agnes Cotell
account for his disappearance? And not his disappearance only; as a
preliminary step towards the marriage, Sir Edward must have been satisfied
that Cotell was dead. Did he know the nature of his death? Had he a share in
this great crime, or was he merely the helpless victim of an ambitious woman,
bent on obtaining a great position, and reckless as to the means to be
employed to obtain it? There may have been in Sir Edward a tendency
towards degeneracy; his son by the first wife was executed at the Tower in
1540 for an abnormal crime. But if Sir Edward was ignorant of the murder,
there must have been suspicions, perhaps necessitating the active
interference of Lady Hungerford when she received, comforted, and aided the
murderers. There must have been whispers, rising to open denunciation when
Lady Hungerford’s protector, her husband, all-powerful in the county, had
quitted the scene. For more than three years justice was blind and deaf, but
only seven months after Sir Edward’s death the criminals were indicted. If we
take into account the imperfect means of communication then existing, we
shall find reason to believe that the law must have been set in motion very
soon after Sir Edward’s death.
It will have been observed that one of Lady Hungerford’s servants pleaded
his clergy, that is, he claimed the indulgence accorded by law to those who
could read. In 1522 it was still the law that the privilege could be claimed by
one who had committed murder. In 1531 an Act was passed by the provisions
of which no person committing petty treason, murder, or felony was admitted
to his clergy under the status of sub-deacon (23 Henry VIII., c. 1).
William Inges’ claim would have been perforce admitted but for the singular
objection on the score of bigamy. The exception seems strange, but was
founded on well-understood provisions of the law. A bigamist, it must be
remembered, was not what we of to-day mean when we use the word. A
bigamist was one who had married two wives, the second after the decease
of the first, or who had married a widow. We will return presently to this
question of bigamy, after noting what Sir Thomas Smith, writing fifty years
later, says as to clergy. Let us, however, premise that benefit of clergy means,
as indeed the name imports, a privilege of the clergy consisting originally in
the right of the clergy to be free from the jurisdiction of lay courts, and to be
subject to the ecclesiastical courts only. Sir James Fitzjames Stephen aptly
compares it to “the privilege claimed by British and other foreign subjects in
Turkey, in Egypt, and in China, of being tried before their own courts.” The
privilege was extended by 25 Edward III. (1351-2), st. 6, c. 4, to all manner
of clerks, as well secular as religious. The statute was construed as being
applicable to all persons who could read, and its effect is succinctly stated in
“Piers Plowman,” written a few years later:—

“Dominus pars hereditatis mee. is a meri verset,


That has take fro tybourne. twenti stronge theves.”
This is the description given by Sir Thomas Smith of the process of claiming
clergy:—
Of him whom the xij. men pronounce guiltie, the Judge asketh what he can
say for himselfe: if he can reade, he demaundeth his Clergie. For in many
felonies, as in theft of oxen, sheepe, money, or other such things which be no
open robberies, by the high way side, nor assaulting one by night in his
house, putting him that is there in feare, such is the favour of our Lawe, that
for the first fault the felon shalbe admitted to his Clergie, for which purpose
the Bishop must send one with authoritie vnder his seale to be Judge in that
matter at euerie gaole deliuerie. If the condemned man demandeth to be
admitted to his booke, the Judge commonly giveth him a Psalter, and turneth
to what place he will. The prisoner readeth as well as he can (God knoweth
sometime very slenderly:) then he asketh of the Bishops commissarie, legit vt
clericus? The commissarie must say legit or non legit, for these be wordes
formall, and our men of Lawe be very precise in their words formall. If he say
legit, the Judge proceedeth no further to sentence of death: if he say non, the
Judge foorthwith, or the next day proceedeth to sentence, which is doone by
word of mouth onelie,
[gives the form of the death sentence]
he that claimeth his Clergie, is burned forthwith in the presence of the Judges
in the brawne of his hand with a hot yron marked with the letter T. for a
theefe, or M. for a mansleer, in cases where Clergie is admitted, and is
deliuered to the Bishops officer to be kept in the Bishops prison, from whence
after a certaine time by an other enquest of Clarkes he is deliuered and let at
large: but if he be taken and condemned the second time, and his marke
espied, he goeth to hanging.[146]
A shrewd observer, Monsieur César de Saussure, gives an account of the
proceeding in 1726: Clergy, he says, was formerly a privilege restricted to
churchmen, but is to-day extended to lay persons convicted to certain crimes,
and particularly of manslaughter. In virtue of this privilege, a New Testament
in Latin and in blackletter is presented to the criminal, who is required to read
two verses. If the person appointed to make him read says these words,
“Legit ut clericus,” that is to say, “He reads like a clerk,” which he always does,
however ill the prisoner has read, the prisoner is simply marked in the palm of
the hand with a hot iron, which he has the further right on payment of
thirteen pence halfpenny to have plunged in cold water before it is applied.
Then he is set free.[147]
The privilege of clergy was constantly narrowed, but was totally abolished
only in 1827 by 7 and 8 George IV., c. 28.
The following were the provisions respecting bigamy in the old sense of the
word:—

4 Edward I. (1276) c. 1, 2. The Statute of Bigamy, Section


5. Concerning Men twice married, called Bigami, whom our
Lord the Pope by a Constitution made at the Council of Lyons
hath excluded from all Clerks privilege, whereupon certain
Prelates when such persons as were twice married before the
same Constitution, have been called in question for Felony,
have prayed for to have them delivered as Clerks … whether
they were Bigami before the same Constitution or after, they
shall not from henceforth be delivered to the Prelates, but
justice shall be executed upon them, as upon other lay
people.
18 Edward III. (1344) Stat. 3, c. 2. (Here summarised.) If a
person accused pleads his clergy, and it is alleged that he has
married two wives, or one widow, the case shall be sent for
determination to the Spiritual Court.

These provisions were abolished by I Edward VI. (1547), c. 12, s. 15, which
put the “bigamist” on the same footing as all others.
1525. In the last moneth called December were taken certain traytors in
the citie of Couentry, one called Fraunces Philippe scolemaster to the kynges
Henxmen, and one Christopher Pykeryng clerke of yᵉ Larder, and one Antony
Maynuile gentleman, which by the persuasion of the sayd Fraunces Philip,
entended to haue taken the kynges treasure of his subsidie as the Collectors
of the same came towarde London, and then to haue araised men and taken
the castle of Kylingworth, and then to haue made battaile against the kyng:
wherfore the sayd Fraunces, Christopher and Anthony wer hanged, drawen
and quartered at Tyborne the xi. day of Februarye, the residue that were
taken, were sent to the citie of Couentry and there wer executed. One of the
kynges Henxmen called Dygby which was one of the conspirators fled the
realme, and after had his pardon (Hall, p. 673).
1531. This yeare Mr. Risse was beheaded at Tower hill, and one that was
his servante was drawne from the Tower of London to Tiburne, where he was
hanged, his bowells burnt, and his bodie quartered.[148]
1534. With the aid of Cranmer, the willing instrument of his lust and
cruelty, Henry had divorced Catherine, and had married his mistress, Anne
Boleyn, the sister of a former mistress. With the same aid he had also
invested himself with the supremacy of the Church. But there was a strong
feeling throughout the country against these proceedings, and Henry viewed
with alarm every manifestation of this feeling. To express disapprobation,
however mildly, was regarded as a crime, as evidence of a conspiracy against
the State.
Elizabeth Barton, afterwards known as the Holy Maid of Kent, was a
domestic servant at Aldington, Kent. From about the year 1525 she was
subject to trances, on recovery from which she narrated the marvels she had
seen in the world of spirits. Her fame was soon spread abroad; many of the
greatest men in the kingdom visited her; some came to believe that she was
inspired, among them perhaps Sir Thomas More, and Fisher, Bishop of
Rochester. When the great case of the divorce came on, Elizabeth predicted
that if Henry married Anne during the life of Catherine he would die within a
month. Cranmer, who had now received the reward of his services by being
appointed Archbishop of Canterbury, laboured to draw from Elizabeth a
confession that “her predictions were feigned of her own imagination only.”
In the Parliament which met in January, 1534, seven persons, including
Elizabeth, were accused of forming a conspiracy in relation to the matter. This
was the end:—
1534. The 20. of Aprill, Elizabeth Barton a nunne professed [she had
entered a convent in 1527], Edward Bocking, and Iohn Dering, two monks of
Christs church in Canterburie, and Richard Risby & another of his fellowes of
yᵉ same house, Richard Master parson of Aldington, and Henry Gold priest,
were drawne from the Tower of London to Tiborne, and there hanged and
headed, the nuns head was set on London bridge, and the other heades on
gates of yᵉ citie (Stow, p. 570).
1535. Maurice Chauncy, a monk of the Charterhouse of London, has told
the story of the martyrdom of the Carthusians, in a book which some one, I
think, has called the swan-song of English monasticism, “Historia Aliquot
Martyrum Anglorum Cartusianorum.”
Proceedings were taken against the London Carthusians for refusing to
admit Henry’s claim to be supreme head of the Church. In the London House
were at this time Father Robert Lawrence, Prior of Beauvale, and Father
Augustine Webster, Prior of Axholme; Beauvale and Axholme being two other
Carthusian monasteries.
Together with Father Houghton, Prior of the London House, Father
Lawrence and Father Webster were brought to trial and condemned. Let
Chauncy tell the story of their execution: with little variation it may stand for
that of all the Catholic martyrs from 1535 to 1681:—
Being brought out of prison [the Tower] they were thrown down on a
hurdle and fastened to it, lying at length on their backs, and so lying on the
hurdle, they were dragged at the heels of horses through the city until they
came to Tyburn, a place where, according to custom, criminals are executed,
which is distant from the prison one league, or a French mile. Who can relate
what grievous things, what tortures they endured on that whole journey,
where one while the road lay over rough and hard, at another through wet
and muddy places, which exceedingly abounded.
On arrival at the place of execution our holy Father was the first loosed, and
then the executioner, as the custom is, bent his knee before him, asking
pardon for the cruel work he had to do. O good Jesu,

“Quis non fleret,


Christi servum si videret,
In tanto supplicio,
Quis non posset contristari”;

beholding the benignity of so holy a man, how gently and moderately he


spoke to the executioner, how sweetly he embraced and kissed him, and how
piously he prayed for him and for all the bystanders. Then on being ordered
to mount the ladder to the gibbet, where he was to be hanged, he meekly
obeyed. Then one of the King’s Council, who stood there with many thousand
people, who came together to witness the sight, asked him if he would submit
to the king’s command and the Act of Parliament, for if he would he should be
pardoned. The holy Martyr of Christ answered: “I call Almighty God, and I
beseech you all in the terrible Day of Judgment, to bear witness, that being
here about to die, I publicly declare that not through any pertinacity, malice,
or rebellious spirit, do I commit this disobedience and denial of the will of our
lord the king, but solely through fear of God, lest I should offend His Supreme
Majesty; because our holy mother, the Church, has decreed and determined
otherwise than as your king and his Parliament have ordained; wherefore I
am bound in conscience and am prepared, and am not confounded, to endure
these and all other torments that can be inflicted, rather than go against the
doctrine of the Church. Pray for me, and have pity on my brethren, of whom I
am the unworthy Prior.” And having said these things, he begged the
executioner to wait until he had finished his prayer, which was, “In te Domine
speravi,” down to “In manus tuas,” inclusive. Then on a sign given, the ladder
was turned, and so he was hanged. Then one of the bystanders, before his
holy soul left his body, cut the rope, and so falling to the ground, he began for
a little space to throb and breathe. Then he was drawn to another adjoining
place, where all his garments were violently torn off, and he was again
extended naked on the hurdle, on whom immediately the bloody executioner
laid his wicked hands. In the first place verenda abscidit, then he cut open his
belly, dragged out his bowels, his heart, and all else, and threw them into a
fire, during which our most blessed Father not only did not cry out on account
of the intolerable pain, but on the contrary, during all this time until his heart
was torn out, prayed continually, and bore himself with more than human
endurance, most patiently, meekly, and tranquilly, to the wonder not only of
the presiding officer, but of all the people who witnessed it. Being at his last
gasp, and nearly disembowelled, he cried out with a most sweet voice, “Most
sweet Jesu, have pity on me in this hour!” And, as trustworthy men have
reported, he said to the tormentor, while in the act of tearing out his heart,
“Good Jesu, what will you do with my heart?” and saying this he breathed his
last. Lastly, his head was cut off, and the beheaded body was divided into four
parts.… Our holy Father having been thus put to death the two other before-
named venerable Fathers, Robert and Augustine, with another religious
named Reynolds, of the Order of St. Bridget, being subjected to the same
most cruel death, were deprived of life, one after another; all of whose
remains were thrown into cauldrons and parboiled, and afterwards put up at
different places in the city. And one arm of our Father was suspended at the
gate of our house.[149]
On the subject of these butcheries Mr. Froude remarks, “But we cannot
blame the Government” (ii. 382).
1535. The eighteenth of June, three Monks of the Charter-house at
London, named Thomas Exmew, Humfrey Middlemore, and Sebastian Nidigate
[Newdigate] were drawen to Tiborne, and there hanged and quartered for
denying the Kinges supremacie (Stow, pp. 570-1).
1535-7. In 1535 was introduced the first Bill for the dissolution of the
monasteries: only the smaller were now touched. The Bill was passed on
Henry’s threat that he would have the Bill pass, or take off some of the
Commons’ heads. Henry had tired of Anne Boleyn, and Cranmer, always equal
to the occasion, “having previously invoked the name of Christ, and having
God alone before his eyes,” had declared that the marriage was void and had
always been so. In 1536 broke out the first of the revolts caused by the
dissolution. Henry had not yet discovered the secret of detaching from the
cause of the people their natural leaders by sharing the plunder with them.
The nobility and gentry had their grievances, and made common cause with
the people. Henry was furious. He gave orders to “run upon the insurgents
with your forces, and with all extremity destroy, burn, and kill man, woman
and child, to the terrible example of all others.” The chief monks were to be
hanged on long pieces of timber out of the steeples. Later, when the revolt
had spread to Yorkshire, he wrote: “You must cause such dreadful execution
upon a good number of the inhabitants, hanging them on trees, quartering
them, and setting their heads and quarters in every town, as shall be a fearful
warning.” In summing up these operations, Cromwell, with a pleasant wit,
speaks of the execution of the rest at “Thyfbourne.”[150] The story of the rest
will follow. It forms but a small fraction of those murdered by this fell tyrant.
It may well be doubted whether in the history of civilised communities there
is any record of a social cataclysm, not resulting from war or pestilence, so
terrible as that which overwhelmed the commons of England after the
dissolution of the monasteries, followed by measures of plunder extending
through the reign of Edward VI. An abbat might not always be a good man of
business, witness the dreadful financial condition in which Abbat Samson
found the monastery of Bury St. Edmunds.[151] He might even be so pressed
for money as to be driven to pledge with the Jews the arm or leg of a saint
taken from the reliquary.[152] But he was a good landlord; the lands of the
monastery were let to the yeomanry on easy terms. The misery of the French
peasantry, largely due to constant English invasions, was so great, that one
who knew France well, Chief Justice Fortescue, writing three hundred years
before the Great Uprising, had to seek reasons for the fact that the peasantry
did not rebel. “It is not pouerte that kepith Ffrenchmen ffro rysinge, but it is
cowardisse and lakke off hartes and corage”: “thai haue no wepen, nor
armour, nor good to bie it with all.” With their lot he contrasts that of the
English yeoman. The might of England “stondith most vppon archers”: if they
were poor, they could not be much exercised in shooting, “wich mey not be
done withowt ryght grete expenses.”[153]
For the English yeomen were a prosperous class, the backbone of the
country. They were able to serve their country alike in peace and war: having
means to send their sons to the universities, not yet appropriated by a class:
able to help in the maintenance of the poor: stout soldiers in case of need—
the best archers in the world. Latimer’s father was a type of the class. A
yeoman, having no lands of his own, he held a farm at a rent of three or four
pounds a year. The tillage of the farm kept half a dozen men, there was walk
for a hundred sheep: Latimer’s mother milked thirty kine. Latimer recollected
buckling on his father’s harness when the stout yeoman-soldier set out for
Blackheath. He put Latimer “to schole, or elles I had not bene able to haue
preached before the kinges maiestie nowe,” gave his daughters a portion,
kept hospitality for his poor neighbours, gave alms to the poor, “and all thys
did he of the sayd farme.” The Dissolution changed all that. The rapacity of
the new landlords, who turned arable land into pasture, and quadrupled rents,
is the despair of contemporaries. Latimer thus speaks of his father’s
successor: “Wher he that now hath it, paieth xvi. pounde by yere or more,
and is not able to do anything for his Prynce, for himselfe, nor for his children,
or geue a cup of drincke to the pore.”[154]
Then, for the first time was heard in England the question since become
familiar, “Can I not do as I like with my own?” They say, said Bernard Gilpin,
“the Apostle of the North,” in a sermon preached before the Court of Edward
VI.—“they saie, their lande is their owne, and forget altogether that the earth
is the Lords & the fulnesse thereof. They turn them out of their shrouds as
thicke as mice.”[155] Henry Brinklow, puritan of puritans, admits that “but for
the faith’s sake,” it had been more profitable to the commonwealth that the
abbey lands had remained in the hands of those “imps of Antichrist,” the
abbeys and nunneries. “For why? thei neuer inhansed their landys, nor toke
so cruel fynes as doo our temporal tyrauntes.”[156]
The governing classes, themselves atheistic,[157] ready to change their
professed religion as often as was necessary to keep their grip on the lands
stolen from the people, played on the fanaticism of a section of the people by
means of imported preachers of the new doctrine, sharked up in every corner
of Europe. When the commons, oppressed beyond endurance, rose at last in
revolt, they were butchered in thousands by foreign mercenaries, the first
seen in England for centuries.[158]
The Guilds, lay associations of men and women banded together for mutual
help, were among the oldest things in England—older than King Alfred. They
were the precursors of the modern Trades Unions and Benefit Societies, but
wider in their constitution, embracing various classes, and more human in
their administration.[159] These, too, were swept away.
The very hospitals were seized, the sick thrust forth.
The dispossessed people wandered about, workless, aimless, foodless.
“Thousandes in England through such [landlords] begge nowe from dore to
dore, which haue kept honest houses.”[160] The Slave Act of the first year of
the reign of Edward VI. made it lawful to brand an Englishman on the
forehead with the mark of slavery, “to putt a rynge of Iron about his Necke
Arme or his Legge for a more knowledge and suretie of the kepinge of
him.”[161]
In 1547 Ascham, about the time he was appointed tutor to Elizabeth,
wrote, “The life now lived by the greatest number is not life, but misery,”
words which a modern writer has said should be inscribed over the century as
its motto. “Most lamentable of all,” writes Ascham, “is it, that that noble
ornament and strength of England, the yeomanry, is broken and
destroyed.”[162]
A contemporary writer draws a picture of “the Decay of England” almost too
terrible for belief, yet all that we know tends to confirm his story. “Whether
shall then they goo?” he cries in despair. “Foorth from shyre to shyre, and to
be scathered thus abrode, within the Kynges maiestyes Realme, where it shall
please Almighty God: and for lacke of maisters, by compulsion dryuen, some
of them to begge, and some to steale.”[163] Happy those who in defence of
their hearths had died in the West and in Norfolk at the hands of Spaniards,
Italians, Germans, Albanians!
A calculation based upon the statements of this same writer on the “Decay
of England” gives 675,000 persons thrown upon the country by the decay of
husbandry.[164] But to this number we must add those turned out of the
monasteries, the poor, formerly maintained by the monasteries and by the
yeomanry, the sick and infirm, ejected from the hospitals established for
“Christ’s poor,” as they are called in the act of foundation of a hospital in the
thirteenth century. And this immense number out of a population estimated at
5,000,000! “And nowe they haue nothynge, but goeth about in England from
dore to dore, and axe theyr almose for Goddes sake. And because they will
not begge, some of them doeth steale, and then they be hanged.”[165] Great
numbers flocked to London, seeking in vain redress of their grievances.
This was the great time of Tyburn.
In his fourth sermon, preached on March 29, 1549, Latimer mentions, quite
incidentally, the frightful number of executions taking place in London, when
he was “in ward” with the Bishop of Chichester in 1539. “I was desirous to
heare of execution done (as ther was euri weke, some in one place of the
citye or other) for there was thre wekes sessions at newgate, and fourth-
nyghte Sessions at the Marshialshy, and so forth.”[166] That is, sessions every
three weeks at the one place and every two weeks at the other. Never had
the gallows been so crowded. In the sentence quoted on the title-page of this
book Sir Thomas More, writing in Latin in 1516, had said that twenty were
“sometimes” hanged together upon one gallows. In the English translation,
first published in 1551, the translator changed “sometimes” (“nonnunquam”)
into “for the most part.” So had the gallows thriven!
The bitter lamentations of Latimer, Brinklow, Ascham, Lever, Bernard Gilpin,
Crowley, are not the cries of partisans of the old order. They had looked for a
new heaven and a new earth—to see “the pure light of the gospel” kindled by
John a Lasco, Stumphius, John ab Ulmis, illuminating homes freed for ever
from taxation by the spoils of the monasteries. And “the Blessed Reformation”
had sent countless thousands to the gallows, had reinstituted white slavery in
England, and had established the “pauper,” no longer “Christ’s poor,” as a
despised and degraded caste.
But of the judicial murders of this dreadful time we know next to nothing.
As Harrison has been more than once quoted it is necessary to refer to a
passage giving what purports to be a statement as to the numbers executed
in the reign of Henry VIII. He says:—
It appeareth by Cardane (who writeth it vpon the report of the bishop of
Lexouia) in the geniture of king Edward the sixt, how Henrie the eight,
executing his laws verie seuerlie against such idle persons, I meane great
theeues, pettie theeues and roges, did hang vp threescore and twelue
thousand of them in his time.[167]
The statement has been repeated by countless writers from Hume
downwards, not one of whom has taken the trouble to refer to the original. It
is a misquotation hoary with age. Cardan gives the nativity of Henry VIII. and
then says: “From these two causes, together with others, there fell out that
which the bishop of Lisieux told me at Besançon, namely, that in the two
years before his death it was found that seventy-two thousand men perished
by the hangman after sentence (judicio et carnifice).”[168] Cardan was at
Besançon in 1552, not long after the death of Henry. Possibly Harrison,
finding the number incredible, as relating to two years, spread the number
over the whole reign. But in the statement attributed to the bishop there is
nothing to indicate the class of persons executed. That in one way or another
Henry did in the course of his reign destroy seventy-two thousand persons
does not seem improbable. It is said that “over 5,000 men were hanged
within the space of six years” in a district of North Wales.[169] By the
provisions of the Act 27 Henry VIII. (1535-6) c. 25, “rufflers” and vagabonds
were to be whipped till their bodies were bloody; for a second offence they
were to be again whipped and to lose a part of the right ear; if thereafter they
were found idling, they were to be declared felons, and to be punished with
death.
1537. The nine and twentith of March were 12. men of Lincolne drawne to
Tyborne, and there hanged and quartered, fiue were priests, and 7. were lay
men, 1. one was an Abbot, a suffragan, doctor Mackerel; another was the
vicar of Louth in Lincolnshire, & two priests (Stow, p. 573).
1537. Alsoe, the 17 daye of Maye, were arrayned at Westmynster these
persons followinge: Doctor Cokerell, prieste and chanon, John Pykeringe,
layman, the Abbot of Gervase [Jervaulx] and an Abbott condam [quondam] of
Fountens, of the order of pyed monkes, the Prior of Bridlington, Chanon,
Docter John Pykeringe, fryer of the order of prechers, and Nicholas Tempeste,
esquire, all which persons were that daye condemned of highe treason, and
had judgment for the same.
And, the 25 daye of Maye, beinge the Frydaye in Whytsonweke, Sir John
Bolner, Sir Stephen Hamerton, knightes, were hanged and heddyd, Nicholas
Tempeste, esquier, Docter Cokerell, preiste, Abbott condam of Fountens, and
Docter Pykeringe, fryer, ware drawen from the Towre of London to Tyburne,
and ther hanged, boweld, and quartered, and their heddes sett one London
Bridge and diverse gates in London.
And the same daye Margaret Cheyney, other wife to Bolmer called [“which”
says Hall, “some reported was not his wife but his paramour”] was drawen
after them from the Tower of London into Smythfyld, and there brente,
according to hir judgment, God pardon her sowle, being the Frydaye in
Whytson weeke; she was a very fayre creature and a bewtyfull.…
The second daie of June, being Saterdaie after Trinitie Soundaie, this yeare
Sir Thomas Percey, knight, and brother to the Earle of Northumberland, was
drawen from the Tower of London to Tiburne, and their hanged and
beheaded, and Sir Francis Bigott, knight, Georg Lomeley, esquire, sonne to
the Lord Lomeley, the Abbott of Gervase, and the Prior of Bridlington, were
drawen from the said place to Tiburne, and their hanged and quartered,
according to their judgmente, and their heades sett on London Bridge and
other gates of London.[170]
1538. The 25. of February, Sir Iohn Allen priest, and also an Irish
Gentleman of the Garets, were hanged and quartered at Tyborne (Stow, p.
574).
Also this yere the xxv. day of Februarii was drawne from the Towere to
Tyborne, Henry Harford gentleman and Thomas Hever merchand, and there
hongyd and qwarterd for tresoun (Grey Friars Chron., ed. Howlett, p. 201).
1538. In Iuly was Edmond Coningsbey attainted of treason, for
counterfeatyng of the kynges Signe Manuell: And in August was Edward
Clifford for thesame cause attainted, and both put to execucion as traitors at
Tiborne. And the Sonday after Bartelmew day, was one Cratwell hangman of
London, and two persones more hanged at the wrestlyng place on the
backesyde of Clerkenwel besyde London, for robbyng of a bouthe in
Bartholomew fayre, at which execution was aboue twentie thousand people
as I my self iudged (Hall’s Chron., p. 826).
1538-9. The third daie of Nouembre were Henry Marques of Excester &
earle of Deuonshire and sir Henry Pole knight and lorde Mountagew and Sir
Edward Neuell brother to the Lorde Burgany sent to the tower which thre wer
accused by sir Gefferei Pole brother to the lord Mountagew, of high treason,
and the two lordes were arreigned the last day of Decembre, at Westminster
before the lord Awdeley of Walden, lord Chauncelor, and then the high stuard
of England, and there found giltie, likewise on the third day after was
arreigned Sir Edward Neuel, Sir Gefferey Pole and two priestes called Croftes
and Collins, and one holand a Mariner and all attainted, and the ninth day of
Ianuarie [1539], were the saied two lordes and Sir Edward Neuell behedded
at the tower hill, and the two priestes and Holande were drawen to Tiborne,
and there hanged and quartered, and sir Gefferey Pole was pardoned (Hall, p.
827).
1539. The eight and twentie daie of Aprill, began a Parliament at
Westminster, in the which Margaret countesse of Salsbury Gertrude wife to
the Marques of Excester, Reignold Poole, a Cardinall brother to the lorde
Mountagew, Sir Adrian Foskew [Fortescue] & Thomas Dingley Knight of saynt
Iohnes, & diuerse other wer attainted of high treason, which Foskew and
Dynglei wer the tenth daie of Iuli behedded.
According to the Grey Friars Chronicle and Wriothesley’s Chronicle they
were beheaded at Tower Hill on the 9th July, “and that same day was drawne
to Tyborne ii. of their seruanttes, and ther hongyd and quarterd for
tresoun.”[171]
1540. Also this same yere was the xvi. day of Marche was one Somer and
iii. vacabundes with hym drawne, hongyd and qwarterd for cleppynge of golde
at Tyborne (Grey Friars Chron., p. 203).
1540. Dr. Johnson blamed the Government of his day for suppressing the
processions to Tyburn—“the public was gratified by a procession.” From this
point of view Henry VIII. was an ideal monarch, though it is open to doubt
whether the burnings at Smithfield and the disembowellings at Tyburn were
not so frequent as to satiate the lovers of these spectacles.
Thus on July 30, 1540, two Doctors of Divinity and a parson were burnt in
Smithfield, and on the same day another Doctor and two priests were hanged
on a gallows at Saint Bartholomew’s Gate, beheaded and quartered—six
victims.
Five days later the spectacle was offered of other seven or perhaps eight
despatched at Tyburn.
The 4. of August, Thomas Empson sometime a monke of Westminster,
which had bin prisoner in Newgate more than three yeeres, was brought
before the Justices of goale deliuerie at Newgate, and for that hee would not
aske the King pardon for denying his supremacie, nor be sworne therto, his
monkes coole was plucked from his backe, and his body repried till the King
were informed of his obstinacie.
Nothing more is told us of Empson, but it has been supposed that he was
executed in this batch:—
The same 4. of August were drawn to Tyborne 6. persons and one lead
betwixt twaine, to wit, Laurence Cooke, prior of Doncaster, William Home a
lay brother of the Charterhouse of London, Giles Horne gentleman, Clement
Philip gentleman of Caleis, & seruant to the L. Lisle, Edmond Bromholme
priest, chaplaine to the said L. Lisley, Darby Gening, Robert Bird, all hanged
and quartered, and had beene attainted by parliament, for deniall of the Kings
supremacie (Stow, p. 581).
1540. There is nothing new under the sun. The Aliens Act of 1905 was
anticipated by the Act 32 Henry VIII. c. 16, Concerning Strangers.
The King our most dradde Souveraine Lord calling unto his blissed
remembraunce the infinite nombre of Straungers and aliens of foren countries
and nations whiche daily doo increase and multiplie within his Graces Realme
and Dominions in excessive nombres, to the greate detriment hinderaunce
losse and empoverishment of his Graces naturall true lieges and subjectis of
this his Realme and to the greate decay of the same—having this on his
blessed remembrance his Grace took measures to drive out aliens not
furnished with letters of denization.
This act indirectly furnished Tyburn with two victims:—
1540. On the xxii. daie of December, was Raufe Egerton seruant to the
Lorde Audeley lorde Chauncellor, hanged, drawen, and quartered, for
counterfetyng of the kynges greate Seale, in a signet, whiche was neuer seen,
and sealed a great nomber of Licenses for Denizens, and one Thomas Harman
that wrote theim, was executed: for the statute made the last parliament sore
bounde the straungiers, whiche wer not Denizens, whiche caused theim to
offre to Egerton, greate sommes of money, the desire whereof caused hym to
practise that whiche brought hym to the ende, that before is declared (Hall, p.
841).
1541. On the 28th June:—There was executed at saint Thomas Waterings
three gentlemen, John Mantell, John Frowds, and george Roidon: they died
for a murther committed in Sussex (as their indictement imported) in
companie of Thomas Fines lord Dacres of the south. The truth whereof was
thus. The said lord Dacres, through the lewd persuasion of some of them, as
hath beene reported, meaning to hunt in the parke of Nicholas Pelham
esquire at Laughton, in the same countie of Sussex, being accompanied with
the said Mantell, Frowds, and Roidon, John Cheinie and Thomas Isleie
gentlemen, Richard Middleton and John Goldwell yeomen, passed from his
house of Hurstmonseux, the last of Aprill in the night season, toward the
same parke, where they intended so to hunt: and comming vnto a place
called Pikehaie in the parish of Hillingleie, they found one John Busbrig, James
Busbrig, and Richard Sumner standing togither; and as it fell out through
quarelling, there insued a fraie betwixt the said lord Dacres and his companie
on the one partie, and the said John and James Busbrig and Richard Sumner
on the other: insomuch that the said John Busbrig receiued such hurt, that he
died thereof the second of Maie next insuing.
Wherevpon, as well the said lord Dacres as those that were there with him,
and diuerse other likewise that were appointed to go another waie to meet
them at the said parke, were indicted of murther; and the seauen and
twentith of June the lord Dacres himselfe was arreigned before the lord
Audleie of Walden then lord chancellor, sitting that daie as high steward of
England, with other peeres of the realme about him, who then and there
condemned the said lord Dacres to die for that transgression. And afterward
the nine and twentith of June being saint Peters daie, at eleuen of the clocke
in the forenoone, the shiriffs of London, accordinglie as they were appointed,
were readie at the tower to haue receiued the said prisoner, and him to haue
lead to execution on the tower hill. But as the prisoner should come forth of
the tower, one Heire a gentleman of the lord chancellors house came, and in
the kings name commanded to staie the execution till two of the clocke in the
afternoone, which caused manie to thinke that the king would haue granted
his pardon. But neuerthelesse, at three of the clocke in the same afternoone,
he was brought forth of the tower, and deliuered to the shiriffs, who lead him
on foot betwixt them vnto Tiburne, where he died. His bodie was buried in the
church of saint Sepulchers. He was not past foure and twentie yeeres of age,
when he came through this great mishap to his end, for whome manie sore
lamented, and likewise for the other three gentlemen, Mantell, Frowds, and
Roidon. But for the said yoong lord, being a right towardlie gentleman, and
such a one, as manie had conceiued great hope of better proofe, no small
mone and lamentation was made; the more indeed, for that it was thought he
was induced to attempt such follie, which occasioned his death, by some light
heads that were then about him.[172]
1541. xxxiii year of Henry VIII. In the beginnyng of this yere, v. priestes in
Yorke shire began a newe rebellion, with thassent of one Leigh a gentleman,
and ix. temporall men, which were apprehended, & shortly after in diuerse
places put in execucion, insomuch that on the xvii. daie of Maie, the said
Leigh & one Tatersall, and Thornton were drawen through London to Tiborne
and there were executed (Hall, p. 841).
1542. The 20 of March was one Clement Dyer, a vintner, drawen to
Tyburne for treason, and hanged and quartered (Wriothesley’s Chronicle, i., p.
135).
1542. December 10. At this tyme the Quene late before maried to the kyng
called Quene Katheryne, was accused to the Kyng of dissolute liuing, before
her mariage, with Fraunces Diram, and that was not secretely, but many
knewe it. And sithe her Mariage, she was vehemently suspected with Thomas
Culpeper, whiche was brought to her Chamber at Lyncolne, in August laste, in
the Progresse tyme, by the Lady of Rocheforde, and were there together
alone, from a leuen of the Clocke at Nighte, till foure of the Clocke in the
Mornyng, and to hym she gaue a Chayne, and a riche Cap. Vpon this the kyng
remoued to London and she was sent to Sion, and there kept close, but yet
serued as Quene. And for the offence confessed by Culpeper and Diram, thei
were put to death at Tiborne (Hall, p. 842).
Culpeper was headed, his body buried at Saint Sepulchers Church by
Newgate: Derham was quartered &c. (Stow, p. 583).
1543. The 8. of May one Lech sometime Baylie of Lowth, who had killed
Somerset one of our heraults of armes at Dunbar in Scotlande, was drawne to
Tyborne and there hanged and quartered. And the 12. of June, Edward Lech
his brother and with him a priest for the same fact, were likewise executed at
Tyborne (Stow, p. 584).
1544. The 7. of March, Garmaine Gardner, and Larke parson of Chelsey,
were executed at Tyborne, for denying the kings supremacie, with them was
executed, for other offences, one Singleton. And shortly after, Ashbey was
likewise executed for the supremacie (Stow, p. 586).
Henry VIII. was succeeded by the boy-King Edward VI. in 1547. Two years
later the peasants rose against their oppressors. Here are echoes of the
risings in the West and in Norfolk.
1549. Item the xxvii. day of the same monythe [August] was iii. persons
drawyn, hongyd, and qwarterd at Tyborne that came owte of the West contre
(Grey Friars Chronicle, p. 223).
1550. The 27. of January, Humfrey Arundell esquire, Thomas Holmes,
Winslowe and Bery Captaines of the rebels in Deuonshire, were hanged and
quartered at Tyborne (Stow, p. 603).
1550. The 10. of February one Bel a Suffolke man, was hanged and
quartered at Tyborne, for moouing a new rebellion in Suffolke & Essex (Stow,
p. 604).
In Machyn’s Diary 1550 to 1563 (Camden Society, 1848), we get almost for
the first time particulars of the rank and file of the victims of Tyburn. This is
accounted for by the probability that, as the editor says, “his business was in
that department of the trade of a merchant-taylor which we now call an
undertaker or furnisher of funerals.” Machyn’s spelling is detestable; it
requires, as will be seen, frequent emendations.
1552. The ij day of May … the sam day was hangyd at Tyborne ix fello[ns]
(p. 18).
The xj day of July [was] hangyd one James Ellys, the grett pykkepurs that
ever was, and cutt-purs, and vij more for theyfft, at Tyburne (pp. 21, 22).
1552. The xxj day of Desember rod to Tyborne to be hangyd for a robery
done on Honsley heth, iij talmen and a lake [tall men and a lacquey] (Machyn,
p. 27).
1553. The xxj day of the same monyth [January] rod unto [Tyburn] ij
felons, serten was for kyllyng of a gentylman [of] ser Edward North knyght, in
Charturhowsse Cheyr [Ch. yard?]—the vij yere of kyng Edward the vj
(Machyn, p. 30).
“Rod” means rode in a cart.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like