Zscaler Interview Experience for Developer C Intern
Summary
I interviewed for the Developer C Intern position at Zscaler through an on-campus opportunity. The process involved an online assessment and three subsequent interview rounds covering data structures, algorithms, C language concepts, Operating Systems, and Computer Networks, ultimately leading to a job offer.
Full Experience
Round 1 - Online Assessment
My first hurdle was an online assessment that featured implementation-based questions, specifically requiring the use of HashMaps. I also encountered problems related to Tries, greedy algorithms often solved with Heaps, and dynamic programming questions based on Longest Increasing Subsequence concepts.
Round 2 - Interview 1
The first interview round delved deeply into C language concepts, particularly pointers. I was also asked to solve two coding problems: 'Find element having odd frequency' and 'Find sum of all divisors of GCD of array elements,' along with 'Merge Intervals.'
Round 3 - Interview 2
The second interview round was quite extensive, with 10-15 questions each on Operating Systems, Computer Networks, and C Programming Language. Additionally, I had to tackle a coding problem: 'Longest Common Subsequence of 2 strings.'
Round 4 - Interview 3
The final interview round focused on implementing 'Run Length Encoding', with a strict requirement to use the C language for the solution.
Verdict: I was ultimately selected for the role, which was an on-campus opportunity.
Interview Questions (5)
Given an array of integers, find the element that appears an odd number of times. It is guaranteed that only one such element exists.
Given an array of integers, first find the greatest common divisor (GCD) of all elements in the array. Then, calculate and return the sum of all positive divisors of that GCD.
Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.
Given two strings text1 and text2, return the length of their longest common subsequence. If there is no common subsequence, return 0. A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.
Implement the run-length encoding algorithm. Given an input string, return its compressed version. For example, 'AAABBC' should be encoded as 'A3B2C1'. The implementation must be strictly in C language.