ThoughtWorks Interview Experience | Set 7 (On-Campus)
Round 1(Algorithm challenge on hackerearth):
1A. Given an array of integers A0, A1, A2… An ; find a ‘k’ where 1<=k<=2^32 such that (A1 xor A2 xor A3… xor An) xor k is maximum. 1<=Ai<=2^32
1B. Given a binary string of length n and two integers m and k, calculate the number of sub-strings of length m which have at least k set bits. 1<=n, k, m<=10^5
Round 2(Pair programming):
Here a real-life situation was given and I had to build an Object Oriented Design for solving that solution. A ThoughtWorker was assigned to help me with hints and to judge my design.
2A. A recruiter has decided to take interviews of n attendees with the help of m interviewers at a venue which has r rooms. Each interview takes exactly 2 hours. A day starts from 9:00 am
and ends at 6:00pm with a break from 2:00pm to 3:00pm. Design this system to produce the schedule of the interviews to be taken and also display if some of the interviews cannot be
Interviewers: 3(A, B, C)
Attendee interviewer room slot
1 A R1 9-11
2 B R2 9-11
3 C R1 11-1
4 B R2 11-1
5 A R1 3-5
Round 3(Technical Round):
This round generally lasts for 1-1.5 hrs. In my case it lasted for over 2 hours.
3A. Approx 45 min discussion and explanation on projects and internships(very thorough)
3B. Discussion about java garbage collector
3C. The bracket balancing problem
3D. Suppose there is a disk having concentric circular tracks. There are sectors marked on the disk. We can add any number of tracks we want and we can add sectors too. How can be
represented using data structures.
3E. Discussion on objects, their identity and difference between two objects of the same class.
3F. Why should we use database when we can store data directly in server?
3G. Make the database schema of a bank
3H. Some sql queries regarding this and discussion about keys
3I. Why do I find Java to be more advantageous than C++
Round 4 (Technical Round):
This lasted for over 1.5 hours.
4A. Detailed discussion and problem solving of about 40 mins from projects which I had done during internships(android) along with those parts which I had not done in those projects.
4B. Discussion on android technologies.
4C. Discussion on linearlayout, constraintlayout and relative layout in android. Their pros and cons.
4D. Discussion about handling large amounts of data in android applications.
4E. Discussion on sharedPreferences and databases, their pros and cons.
4F. Discussion about Http get and post requests.
4G. Explain the working of a login page in android.
4H. Discussion on recyclerview, arrayAdapters and their usages.
4I. Given a number n, make a set of m integers such that the integers lie between [1, n] and the sum of no two integers should produce an integer which is in the set.
[3, 6, 11, 14, 17](other sets also possible)
4J. Given a chain of rings and the strengths of each joining, we have to divide the chain in 3 parts such that effort to break them is minimum(effort does not depend of position of joining).
I had to show two approaches: i. With 2 arrays
ii. With 1 array
4K. Given a graph, implement the solution to the K colouring problem.
Round 5(HR round):
This lasted for about 20 minutes.
5A. Discussion about my background and skill set.
5B. In what scale would I think of making a solution if a product requisition of a shopping app is given by a client.
5C. What are some of the added difficulties that mobile application developers face than other developers.
5D. How, according to me, does netflix or amazon prime stream their videos?
5E. Information about types of works undertaken by ThoughtWorks.
Round 6(P3 round):
This round deals with the 3rd pillar of ThoughtWorks i.e. Social Justice. This lasted for about 25 minutes.
6A. India is a country which faces many social, political and economical issues where there is much scope for improvement. Which is such an issue that, I feel I can make a difference in, and how can I contribute as a citizen or a software engineer?