Friday, 7 December 2012

Epic Systems Test

Epic Systems is a US based company that makes software for healthcare industry. It offers an attractive  compensation and is a good company to start with, if you don't have much options are targeting a job in USA.

There were 2 rounds of testing, 1st one was a very simple aptitude/personality based assessment. Almost all the people who gave the first round got shortlisted for the second round.

Second round consisted of coding questions for which we had to write code in any language of our choice. Total duration of the test was 2 hours.

Here are the questions from the Coding round:

1) You are given a number n, write a function that prints next 10 terms of the 'Look and Say' sequence.
     Eg. If n = 1, then first term is 1, next term is 11, this is because "1 occurs 1 times",
           next term of 11 is 12 because "1 occurs 2 times",
           next term of 12 is 1121 because "1 occurs 1 times, 2 occurs 1 times"
           next term of 1112 is 1321 because "1 occurs 3 times, 2 occurs 1 times"
           next term of 1321 is 11312111 because "1 occurs 1 times, 3 occurs 1 times, 2 occurs 1 times, 1 occurs 1 times" and so on.

2) Find max sum contiguous subsequence in an array of integers. (Hint : Kadane's Algorithm)

3) You are given a 2D grid of integers. You have to find the longest path in the grid such that adjacent terms in the path have a difference of +1/-1. Print all paths of max length. Constraint : you can move only down and right.

4) You are given 2 strings, say A and B. Convert a string A to string B using adjacent swaps of characters in A. Give the intermediate series of strings produced. Display an error if the A can't be converted to B.

    Eg. A = "DUM", B = "MUD", DUM -> DMU -> MDU -> MUD

Final Interview shortlist of Epic consisted of 20 odd people from over a 150 people who initially sat for the tests. From my observation, you had to do at least 3 questions out of the above 4 correctly to be in the final shortlist.


  1. For Q3. ,

    Can we convert the Grid into a Graph (which will be DAG) and then find the longest path in DAG (O(n)) ?

  2. Yes that's a good idea, but I used dynamic programming in O(n^2) for n*n grid. Although the idea you suggested is correct, you also should be able to code it up within 30-45 mins, I think it's easier to code the dynamic programming idea that I used instead of the DAG approach

  3. I am going to take epic assessment test soon.Kindly tell me how should I prepare myself.From where I can get/practice the samples epic quetions.Suggest some websites/material........Plzz help me.......

  4. Hi Soupam, You should focus on the basics. Test #1 is very simple. Test #2 as mentioned above focuses on data structures and algorithms. I suggest that you practice enough from the various sources I have suggested

  5. Hi Chinmay...Thanks for sharing the information....It will be very useful to me...