# Thoughtworks Interview Experience | Set 3 (On-Campus)

Thoughtworks visited our campus there were three rounds.

Round 1:
It is divided into two parts:
a).Short Coding Round
b).Long Coding Round

a).Short Coding Round:-

In short coding round they concern only about output. Time limit of short coding round is 20 min.

Problem Statement: – You are given a dictionary (a set of words). They will enter a set of characters you have to print all the words that can be formed using these characters.

i.e

```dict:- { “Rat”, “mat”, ”bat”, “chat”,
“cat”, “tab”, “fab”, “batt” }
chars:- t a b c

output:- bat, cat, tab
```

Solution

 `#include ` `using` `namespace` `std; ` ` `  `bool` `isPresent(set<``char``> c, string a) ` `{ ` `    ``unsigned ``int` `countval = 0; ` ` `  `    ``for` `(unsigned ``int` `i = 0; ` `         ``i < ``strlen``(a.c_str()); i++) { ` ` `  `        ``char` `ca = a[i]; ` `        ``if` `(c.count(ca)) { ` `            ``countval++; ` `        ``} ` `    ``} ` ` `  `    ``return` `countval == ``strlen``(a.c_str()); ` `} ` ` `  `int` `main() ` `{ ` `    ``set dict; ` `    ``dict.insert(``"rat"``); ` `    ``dict.insert(``"mat"``); ` `    ``dict.insert(``"bat"``); ` `    ``dict.insert(``"chat"``); ` `    ``dict.insert(``"cat"``); ` `    ``dict.insert(``"tab"``); ` `    ``dict.insert(``"fat"``); ` `    ``dict.insert(``"batt"``); ` ` `  `    ``set::iterator s; ` ` `  `    ``set<``char``> c; ` `    ``c.insert(``'t'``); ` `    ``c.insert(``'a'``); ` `    ``c.insert(``'b'``); ` `    ``c.insert(``'c'``); ` ` `  `    ``for` `(s = dict.begin(); s != dict.end(); ++s) { ` `        ``string a = *s; ` `        ``if` `(isPresent(c, a) == ``true``) ` `            ``cout << a << endl; ` `    ``} ` `    ``return` `0; ` `} `

Out of 140 only 14 students qualified for next round.

b). Long Coding Round:-

In this round they also concern about approach, how u name the variables, function, oops approach.
Time limit of this part is 90 min.

Problem Statement: – In a movie theatre 2 shows are running. You are given available seat of both show. There are some groups who want to book the tickets so first ask the show no. and then check whether seats are available or not if available then book their seats else ask them to enter seats again.
After each successful booking print total available seats and total booked seats.

```Show 1:
Available seat:- A1, A2, A3, A4, A5, A6, A9

Show 2:
Available seat:- A1, A2, A4, A5, A6, B1, B3, B4, B5, B6, B7

Group1: -
Enter show no:- 1
Enter seats:- A1, A4

Print:- “Successfully booked”
Available seat:- A2, A3, A5, A6, A9
Booked Seat:- A1, A4

Group2:-
Enter show no:- 1
Enter seats:- A1, A3

Print : - seat A1 not available please try again. ```

Out of 14 students only 7 are qualified for next round.

Round 2:-
Technical Interview :-

After introduction they asked about projects. I did my final year project in android so they asked me why you use Json, what is json, how you store your databse.
Then they asked about favourite subject i told them DSA.
They asked me my fav. Data structure I told them linked list. Then they asked few questions i.e
Insert a node in linked list.
How you implement stack using linked list.
Delete nth node in linked list.
Delete second last node in linked list
Delete second last node in doubly linked list.
Which language do you prefer for coding.
Difference between C and C++.
Are you comfortable with SQL, Oracle database?
Any project on OOPS?

Out of 7, only 1 student selected for HR round.

Round 3:-

HR round:-

If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Write your Interview Experience or mail it to contribute@geeksforgeeks.org

My Personal Notes arrow_drop_up