Epic Systems Online Assessments
Summary
I completed the Epic Systems technical assessment, which included short logic, MIIS, math/logic, and programming questions.
Full Experience
Epic Systems Technical Assessment - Questions and Format
I recently completed the Epic Systems technical assessment and wanted to share the general format and the types of questions I encountered.
Assessment Format
From what I remember, the assessment consisted of:
- 2 minutes: Answer as many short logic/reasoning questions as possible
- 20 MIIS questions
- 4 programming questions
- 15 math/logic questions
MIIS Questions
The MIIS section included arithmetic expressions as well as string/type-conversion questions.
MIIS Arithmetic
Example:
What is the value of:
1 + 1 * 3 / 2 + 7 # 12
MIIS Strings / Type Conversion
Given:
A = "JOHN"
B = "JANE"
C = "3DOES"
What is the value of:
0.A + B + C - 3
Math / Logic Questions
The math section included short word problems and logic puzzles. Questions were similar to these:
Coins
Someone has two coins that total 55 cents. One of the coins is not a nickel. What are the two coins?
Tree
A tree doubles in size every day. On the 10th day, it is 8 feet tall. On what day was it 5 feet tall?
Store
A man goes to a store asking for something. The salesman says:
"One is $1."
The customer replies:
"I need 600. Here is $3."
What was he buying?
Time
How many minutes is it before 5 PM if, 50 minutes ago, it was four times as many minutes past 3 PM?
Pizza
1.5 people eat 1.5 pizzas in 1.5 days.
If there are 9 people, how many pizzas will they eat in 3 days?
Hallway / Offices
Two people start at opposite ends of a hallway.
- Person A starts at office 1 and moves at 5 offices per minute.
- Person B starts at office 46 and moves at 10 offices per minute.
They leave at the same time and move toward each other.
At which office will they meet?
Programming Questions
There were four programming questions.
1. Keypad String Encoding
Given a string, convert each letter into its corresponding sequence of key presses on a traditional telephone keypad.
The mapping is:
| Key | Characters |
|---|---|
2 | A → 2, B → 22, C → 222 |
3 | D → 3, E → 33, F → 333 |
4 | G → 4, H → 44, I → 444 |
5 | J → 5, K → 55, L → 555 |
6 | M → 6, N → 66, O → 666 |
7 | P → 7, Q → 77, R → 777, S → 7777 |
8 | T → 8, U → 88, V → 888 |
9 | W → 9, X → 99, Y → 999, Z → 9999 |
Rules
- Ignore spaces.
- Treat uppercase and lowercase letters the same.
- Encode each letter using its corresponding keypad sequence.
- If two consecutive letters use the same keypad key, insert
#between their encodings.
For example:
A → 2
B → 22
"AB" → "2#22"
The separator is necessary because otherwise 222 could be interpreted as C.
However:
"AD" → "23"
No separator is needed because A and D use different keys.
Example
Input:
"HEY EPIC"
Encoding:
H → 44
E → 33
Y → 999
E → 33
P → 7
I → 444
C → 222
Result:
4433999337444222
A possible function signature:
def encodeString(s):
# return encoded string
2. Character Frequency Map
Given a string, count how many times each character appears and store the counts in a map.
The keys should remain in the order in which each distinct character first appears in the input.
Ignore spaces and treat uppercase and lowercase letters as the same character.
Example
Input:
"Amount Characters"
After converting to lowercase and removing spaces:
"amountcharacters"
The resulting map is:
a: 3
m: 1
o: 1
u: 1
n: 1
t: 2
c: 2
h: 1
r: 2
e: 1
s: 1
The keys are not alphabetically sorted. Their order is based on first appearance:
a → m → o → u → n → t → c → h → r → e → s
3. Mingo
This was essentially a Bingo-style problem.
You are given:
- A
100 × 100matrix of integers - Each cell contains a value from
1to1,000,000 - An array
calledcontaining numbers in the order in which they are called
A Mingo occurs when all values from any of the following have appeared in the called sequence so far:
- A complete row
- A complete column
- The main diagonal from top-left to bottom-right
Process called from left to right.
After each called number, determine whether a Mingo has occurred.
Return something like:
[mingoOccurred, numberOfCalls]
where:
mingoOccurredisTrueif a Mingo occurs.numberOfCallsis the number of values called when the first Mingo occurs.
Example
board = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
called = [1, 5, 2, 9]
After four calls, the main diagonal is complete:
1
5
9
Therefore:
[True, 4]
If no row, column, or main diagonal is completed, return the corresponding "no Mingo" result specified by the problem.
4. Adjacent Transpositions
Given two strings, source and target, containing the same characters with the same frequencies, determine the minimum number of adjacent swaps required to transform source into target.
A transposition consists of swapping two adjacent characters only.
Example
source = "GUM"
target = "MUG"
One possible sequence is:
GUM
GMU # swap U and M
MGU # swap G and M
MUG # swap G and U
Therefore, the answer is:
3
The task is to return the minimum number of adjacent swaps necessary to transform the first string into the second.
You can assume the transformation is possible, meaning both strings contain the same characters with the same frequencies.
A possible function signature:
def countTranspositions(source, target):
# return minimum number of adjacent swaps
Interview Questions (12)
MIIS Arithmetic Evaluation
What is the value of: 1 + 1 * 3 / 2 + 7
MIIS String/Type Conversion
Given:
A = "JOHN"
B = "JANE"
C = "3DOES"
What is the value of: 0.A + B + C - 3
Coins Puzzle
Someone has two coins that total 55 cents. One of the coins is not a nickel. What are the two coins?
Tree Height Puzzle
A tree doubles in size every day. On the 10th day, it is 8 feet tall. On what day was it 5 feet tall?
Store Riddle
A man goes to a store asking for something. The salesman says: "One is $1." The customer replies: "I need 600. Here is $3." What was he buying?
Time Logic Puzzle
How many minutes is it before 5 PM if, 50 minutes ago, it was four times as many minutes past 3 PM?
Pizza Consumption Puzzle
1.5 people eat 1.5 pizzas in 1.5 days. If there are 9 people, how many pizzas will they eat in 3 days?
Hallway Meeting Puzzle
Two people start at opposite ends of a hallway. Person A starts at office 1 and moves at 5 offices per minute. Person B starts at office 46 and moves at 10 offices per minute. They leave at the same time and move toward each other. At which office will they meet?
Keypad String Encoding
Given a string, convert each letter into its corresponding sequence of key presses on a traditional telephone keypad using the provided mapping. Insert # between encodings when two consecutive letters use the same keypad key. Ignore spaces and treat case‑insensitively.
Example input: "HEY EPIC"
Expected output: 4433999337444222
Character Frequency Map
Given a string, count how many times each character appears and store the counts in a map while preserving the order of first appearance. Ignore spaces and treat upper‑ and lower‑case as the same.
Example input: "Amount Characters"
Expected map order: a → m → o → u → n → t → c → h → r → e → s with corresponding counts.
Mingo Detection
Given a 100×100 integer matrix and an array called of numbers in order, determine the first time a complete row, column, or the main diagonal has all its values present in the called sequence. Return [mingoOccurred, numberOfCalls] where mingoOccurred is true if a Mingo occurs and numberOfCalls is the index of the call when the first Mingo happens.
Example board:
[ [1,2,3], [4,5,6], [7,8,9] ]
Called sequence: [1,5,2,9]
Result: [True, 4]
Minimum Adjacent Transpositions
Given two strings source and target containing the same characters with the same frequencies, compute the minimum number of adjacent swaps required to transform source into target.
Example: source = "GUM", target = "MUG" → answer 3.