Company : Epic System
College : Bits Pilani
CTC: $100,000 P.A.
Profile: Software Development
(Interviews were Telephonic)
No of Rounds: 2 Written Rounds + 2 Interview Rounds
Round 1: Written Test
There were two rounds of test. There was no time limit for both the rounds. The evaluation was done on basis of both time and accuracy.
It took 45-70 minutes for this round.
1) Section A: general aptitude questions.
2) Section B: A new programming language was given. You have to
understand the programming language and answer the questions that follow.
Round 2: Written Test
There were four coding questions. We just had to write the functions. Any programming language even pseudo code was allowed.
Q1. Convert a decimal number into fraction (e.g. input is 0.5 (float) output will be “1/2” (string))
Q2. There is a question which is slightly modified version of maximum-subarray problem.
Q3. Given n. Generate all numbers with number of digits equal to n, such that the digit to the right is greater than the left digit (ai+1 > ai). E.g. if n=3 (123,124,125,……129,234,…..789)
Q4. You can swap only two consecutive elements. You have to show all steps to convert a string into another string (both strings will be anagrams of each other). E.g. GUM to MUG
GUM
GMU
MGU
MUG
Round 3: Telephonic Interview (15-30 minutes)
Q1. Questions were from resume only. They will ask about any project and various technologies in it.
Q2. Given and Array of A[1..n] bits, find the length of longest consecutive substring of 0 and 1 such that number of 0s and 1s are equal?
Round 4: Telephonic Interview (15-30 minutes)
Q1. Given two sequences of length N, how to find the max window of matching patterns. The patterns can be mutated.
For example, seq1 = “ABCDEFG”, seq2 = “DBCAPFG”, then the max window is 4. (ABCD from seq1 and DBCA from seq2).
Q2. How do you rotate a string of length n word by word with constant extra space in linear time ?
HR Round:
They asked general HR questions. (Like: Why Epic? Strengh/ Weakness.., etc.)
Tips / Advice: Written rounds are more important than the interviews. In the written (Round 2) test try to focus on code quality and time. Write comment as much as possible. Don’t waste time in peeping from others. Earlier submission will give you an advantage over others.
Thanks Anuj for contributing this article. If you would like to contribute, mail us your interview experience at [email protected] or write it here: Google Form . We will like to publish it on CrazyforCode and help other job seekers.
Round 2 Q3:
written in python
def q2(n):
num = “”; unum = “”; ans = []
for i in range(1, n + 1): num = num + str(i)
for i in range(10-n, 10): unum = unum + str(i)
num = int(num); unum = int(unum)
for i in range(num, unum + 1):
d = list(map(int, str(i)))
for j in range(len(d)-1):
if d[j] < d[j + 1]:
if j == n – 2: ans.append(i)
else:
break
return ans
written in python 3
{{{
def scramble(old, new):
old = list(old); new = list(new)
print(”.join(new))
for j in range(len(old)):
letter = old[j]
split1 = new[:j]; split2 = new[j:]
location = split2.index(letter) #finds location of ith letter in new word
for i in reversed(range(1, location + 1)):
temp = split2[i]
split2[i] = split2[i-1]
split2[i-1] = temp
print(”.join(split1 + split2))
new = split1 + split2
}}}
written in python 3
used # as indents
def scramble(old, new):
###old = list(old); new = list(new)
###print(”.join(new))
###for j in range(len(old)):
####letter = old[j]
####split1 = new[:j]; split2 = new[j:]
####location = split2.index(letter) #finds location of ith letter in new word
####for i in reversed(range(1, location + 1)):
######temp = split2[i]
######split2[i] = split2[i-1]
######split2[i-1] = temp
######print(”.join(split1 + split2))
####new = split1 + split2