Related Articles

# Factset Interview Experience (On-Campus Hire Drive)

• Difficulty Level : Medium
• Last Updated : 04 Sep, 2019

Factset visited our college for hiring for Software Engineer position. The interview consisted of a pen and paper coding round, followed by interview rounds for the students selected after the coding round.

Pen and Paper Coding Round:

There were three questions in this round. We were asked to write the code for the questions in the sheets provided to us, along with the logic applied and worst case time complexity.
1) Given a matrix of 0’s and 1’s, for a cell containing 0, change all the cells of that row and column to 0.
2) Given a number X, find the smallest number, product of whose digits equals X.
3) Given an array, sort the array in wave form.
29 People were selected after this round for the interview process. The interview process consisted of 2 technical and 1 HR round.

Round 1: (Technical)

Three questions were asked in this round, all related to data structures and algorithms. I was asked to give an efficient logic for each ques and write the pseudo for it. The questions were:
1) Given a sorted array find the magic point, point where a[i]=i.
Tips: Proceed with Binary search approach, considering all boundary cases and duplicate value case.

2) Given 3 strings A, B and C, check if the C is an interleaving of A and B or not.
Tips: Understand the DP solution, but be prepared with other brute force solution as well. I gave the DP solution but he asked can it be done without using DP. So I gave a solution using the merging concept of merge sort, considering both the orders AB and BA. Again consider the boundary cases.
For reference: https://www.geeksforgeeks.org/find-if-a-string-is-interleaved-of-two-other-strings-dp-33/
3) Given a BST, Update the value of every node to the sum of all nodes greater that node in the BST. Tips: A 2 traversal method can be implemented using In-Order traversal. But if asked to do it in one traversal, use In-Order traversal in reverse order.
For Reference: https://www.geeksforgeeks.org/transform-bst-sum-tree/

Round 2: (Technical)

Firstly I was asked questions about my Internships. Then three questions were asked in this round, again all were related to concepts of data structures.
1) You are given some IP ranges and a token associated with each IP range. The ranges have no overlapping but they are not continuous. When a user requests for a token from an IP, You find the range to which this IP belongs, and return the corresponding token in response. I was asked to create a structure for this problem which will carry out the task.
Tips: Ask about which IP addresses should be taken into consideration, like I confirmed that I should handle IP address from 10.0.0.0 to 10.0.0.255 (256 IP’s).This will help you in your design. Then think about arrays and link list for storing the ranges. For searching, use binary search and look for boundary conditions. I also proposed a binary search tree solution where each node stores 2 values, the start and end value of a range. The idea of using this was to keep the ranges sorted and avoid extra sorting time.
2) Given 2 matrices, which are row and column sorted, and a value X, find pairs by taking 1 element from each matrix such that the sum of the pair elements equals X.
For reference: https://www.geeksforgeeks.org/count-pairs-two-sorted-matrices-given-sum/
3) Given an unsorted array, find the smallest missing positive number. Few solutions can be sorting the array, using frequency counting technique etc. But if it is required to find it in O(n) time and O(1) space, then refer to the Link.

Round 3: (HR Round)

1) Tell me about yourself. (Interests, Hobbies, Extra curricular activities)