Company : Citi Bank
The first round was a Online written round. A third party platform, amcat, conducted it. There were different sections from Basic Programming knowledge MCQ, Quantitative Aptitude, Logical Reasoning and a couple of coding questions. The test was adaptive, although there wasn’t any negative marking, but you could not go to back to edit even the previous answer (and not just the section). There was a sectional time limit too. And it was a different-terminal different-set exam.
The coding questions in the written were (for me):
Q1. Given a connected directed graph in the form of a adjacency matrix, check whether it’s a tree or not.
Ans: As the graph is connected, just check if the number of edges in the graph is N-1 (for N nodes) or not. A tree of n nodes always has only n-1 edges.
Q2. Given a number n. print the pattern as such: testcase: for n = 5 111112 322222 333334 544444 555556 Simple adhoc problem. Out of a hundred twenty or so candidates, approximately 25-30 were shortlisted. Codes were checked manually.
Tech Interview (Round 1) 20 minutes:
A panel of two were to interview me. They asked about my projects.
Q1. Write a code to fill a completely empty sudoku( there is not a even a single cell filled already). I first proposed simple backtracking approach. Brute force. He emphasized on the part you don’t have to “solve” the sudoku, as it is completely empty. Then I wrote a more optimized code to do it. Which will generate a single pattern of sudoku only. But doesn’t violate any rules.
Q2. How do you attempt any problem. Subjective answer. They were looking for the method with which I attempt problems. I answered with my experience of work in the projects. Technical Round 2, 5 mins. He just gave me the answers, I had written, to the coding question I attempted in the written exam, and asked me to explain what approach I had used.
HR round 10 mins:
Results were declared the next day, and 11 people, including me, were selected.