Epic Systems Online Assessments

epic systems logo
epic systems
August 22, 2026 · 0 reads

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:

KeyCharacters
2A → 2, B → 22, C → 222
3D → 3, E → 33, F → 333
4G → 4, H → 44, I → 444
5J → 5, K → 55, L → 555
6M → 6, N → 66, O → 666
7P → 7, Q → 77, R → 777, S → 7777
8T → 8, U → 88, V → 888
9W → 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 × 100 matrix of integers
  • Each cell contains a value from 1 to 1,000,000
  • An array called containing 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:

  • mingoOccurred is True if a Mingo occurs.
  • numberOfCalls is 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)

1.

MIIS Arithmetic Evaluation

Other·Easy

What is the value of: 1 + 1 * 3 / 2 + 7

2.

MIIS String/Type Conversion

Other·Medium

Given:

A = "JOHN"
B = "JANE"
C = "3DOES"

What is the value of: 0.A + B + C - 3

3.

Coins Puzzle

Other·Easy

Someone has two coins that total 55 cents. One of the coins is not a nickel. What are the two coins?

4.

Tree Height Puzzle

Other·Easy

A tree doubles in size every day. On the 10th day, it is 8 feet tall. On what day was it 5 feet tall?

5.

Store Riddle

Other·Medium

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?

6.

Time Logic Puzzle

Other·Medium

How many minutes is it before 5 PM if, 50 minutes ago, it was four times as many minutes past 3 PM?

7.

Pizza Consumption Puzzle

Other·Easy

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?

8.

Hallway Meeting Puzzle

Other·Medium

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?

9.

Keypad String Encoding

Data Structures & Algorithms·Medium

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

10.

Character Frequency Map

Data Structures & Algorithms·Easy

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.

11.

Mingo Detection

Data Structures & Algorithms·Hard

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]

12.

Minimum Adjacent Transpositions

Data Structures & Algorithms·Hard

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.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!