Sunday, 28 July 2013

Unicommerce interview

Unicommerce interview.

Date : 27 July 2013
Venue : Okhla Phase 3, New Delhi, India

Round 1 (Aptitude):
15 question. 45 minutes.
Objective questions. However, there is no strict marking scheme. Any guess made will be questioned in interview.

Q.1 If a>b implies 1/a<1/b, the which is true?
A) a>0 
B) b>0 
C) a>0 and b>0 
D) none of the above

Q.2  There are 25 horses in a race. Find the minimum number of races to find the three fastest horses. Each race can have 5 horses.
A) 12 
B) 7 
C) 9 
D) 5
Ans. 7.
First perform 5 races to find the top 5. Total races = 5
Then perform a race to find the fastest horse. Total races = 6
Now discard the original buckets of 2nd, 3rd, 4th and 5th horse from the 6th race as they can never give top three fastest horses and we already have the fastest horses from these pool. Also, discard the 4th and 5th horse of 6th race.
So, we are left with four horses from the pool of winner of 6th race and the second and third of 6th race i.e. total of 6 horses.
Now either the 2nd and 3rd of 6th race are the 2nd and third fastest or the 2nd or 3rd of the winner of 6th race are the 2nd and 3rd fastest.
So, discard the 4th and 5th of the original bucket of winner of 6th race.
Now, we are letf with only four horses. 2nd and 3rd of 6th race and 2nd and 3rd of the original bucket of winner of 6th race.
Perform a race of these four horses and get the second and third.               Total races = 7

Q.3  Find the total number of squares that u can draw in a chess board?
Ans. 204
        Consider the lefthand vertical edge of a square of size 1 x 1.  
This edge can be in any one of 8 positions. Similarly, the top 
edge can occupy any one of 8 positions for a 1 x 1 square.  
So the total number of 1 x 1 squares = 8 x 8 = 64.

For a 2 x 2 square the lefthand edge can occupy 7 positions and 
the top edge 7 positions, giving 7 x 7 = 49 squares of size 2 x 2.

Continuing in this way we get squares of size 3 x 3, 4 x 4 and so on.

We can summarize the results as follows:

   Size Of square      Number of squares
   ---------------     -----------------
      1 x 1               8^2 = 64
      2 x 2               7^2 = 49
      3 x 3               6^2 = 36
      4 x 4               5^2 = 25
      5 x 5               4^2 = 16
      6 x 6               3^2 =  9
      7 x 7               2^2 =  4
      8 x 8               1^2 =  1
                      Total   = 204

There is a formula for the sum of squares of the integers 
1^2 + 2^2 + 3^2 + ...  + n^2

         Sum  = ------------

In our case, with n = 8, this formula gives 8 x 9 x 17/6 = 204.

As an extension to this problem, you might want to calculate the 
number of rectangles that can be drawn on a chessboard.

There are 9 vertical lines and 9 horizontal lines. To form a rectangle 
you must choose 2 of the 9 vertical lines, and 2 of the 9 horizontal 
lines. Each of these can be done in 9C2 ways = 36 ways. So the number 
of rectangles is given by 36^2 = 1296.

Q.4 How many knights can u place on a chessboard such that none of them attacks the other?
Ans. 32

Q.5 Find the next number in the series.
6, 15, 35, 77, 143, ___
Ans. 221
6 = 2*3
15 = 3*5
35 = 5*7
77 = 7 *11
The pattern is that the terms are products of two prime numbers and where one of the prime numbers increases to the next one in the following term Hence:
11*13 = 143
13*17 = 221 etc

Q.6 How many zeroes are there at the end of 1000! (1000*999*998*......3*2*1) ?
Ans. 248
We wish to find the number of zeros at the end of 1000! = 1000*999*998*997*....*4*3*2*1
We examine the factors of 1000! to see which can be used to produce multiples of 10.
For 1000!, each multiple of 5 - taken together with some even number - contributes a multiple of 10. Each multiple of 25 - taken together with some multiple of 4 - contributes two multiples of 10. Each multiple of 125 - taken together with some multiple of 8 - contributes three multiples of 10.
We can count each multiple of 5 in 1000! once. Then we can count each multiple of 25 in 1000! once in order to altogether count each multiple of 25 twice. Then we can count each multiple of 125 in 1000! once in order to altogether count each multiple of 125 thrice.
There are 1000/5 = 200 multiples of 5 in 1000!
There are 1000/25 = 40 multiples of 25 in 1000!
There are 1000/125 = 8 multiples of 125 in 1000!
Adding them together, we have 200+40+8 = 248 zeros at the end of 1000!.

Q.7 There are 3 Englishmen and three french in a company. Each of them holds a secret. They can tell the secret on a one-on-one telephonic conversation. At the end of all the conversations each of them must know all the six secrets. Only one Englishman knows french and none of the french knows English. How many minimum calls are to be made?
A) 5
B) 9
C) 10
D) 15
Ans. C) 9
1: Englishman 1 calls the guy who knows french, and tells his secret
2: Englishman 2 calls the guy who knows french, and tells his secret
3, 4: The guy who knows french calls two of the Frenchmen and collects their secrets
5: The guy who knows french calls the last Frenchman and collects his secret (thus gaining all the secrets) and tells the Frenchman all the secrets he knows (so the Frenchman has all the secrets).
6-7: the Frenchman calls his fellow Frenchmen and discloses all the secrets
8-9: The guy who knows french calls his fellow Englishmen and discloses all the secrets.

Q.8 Akshay Kumar is standing in a tunnel(PQ) at a distance of x/4 from P. The total length of the PQ tunnel is x.  A train is approaching the tunnel from P. Currently it is at a distance of y from P. It is running at a speed of 60 km/hr. If Akshay can run at his maximum speed to just save his life, what is the maximum speed of Akshay?

Q.9 There are two beakers A and B. A contains 1000ml of milk and B contains 1000 ml of water. If 100 ml of milk from A is added to B and then 100 ml of liquid from B is added to A. Which of the following is true?
A) Percentage of milk in A > Percentage of water in B
B)  Percentage of milk in A < Percentage of water in B
C)  Percentage of milk in A = Percentage of water in B
D) None of the above
Ans. C
Explanation : On solving the percentage of milk in A and water in B come out as 91%.

Q. 10 An object is marked at MRP p. Which of these two  options will result in a lower price for customer?
I) First give a discount of x% on p. Then add a tax of y% on the result.
II) First add a tax of y% on p. Then provide a discount of x% on the result.
Ans. Both will result in the same final price i.e.  p(1-x/100)(1+y/100)

Q.11 A car travels at 40 km/hr from Delhi to Gurgaon and comes back at 60 km/hr from Gurgaon to Delhi. What is the average speed of car during the entire journey?

Q.12  In the following grid assign the numbers 1-8 such that no two numbers that are adjacent in numeric series are adjacent in the grid (vertically, horizontally and diagonally). For example the below solution is incorrect.
X 1 X
2 3 4
5 6 7
X 8 X
X 7 X
3 1 4
5 8 6
X 2 X

Q.13 There are 1000 bulbs in a room in off state. Turning the switch will put them in on state. In first pass all the switches are turned. In second only the switches that are multiples of 2 are turned and so on ..... After the 1000 pass how many switches remain on?
Ans. No of primes < 1000

Round 2 (Face to face interview):
Q.1 Explain the solution of question number 4.
I had accidentally solved it thinking they are asking about rook not knight (and marked 8 as my answer). Corrected my mistake and gave this design.

k k k
k k
k k k
and so on i.e. putting knights after leaving a block which gives us 64/2 = 32 knights.

Q.2 Detailed explanation of Q.2 (horse racing).
Like me everybody has simply guessed that one. So it was pretty much 'catch of the day' for the interviewer. I did notice a smirk when he asked me. Ans i did get busted. Then,i tried my level best, but reached only up to finding top 2 fastest horses. Mr. Einstein then explained me the answer. This one took a lot of time.

Q.3 What do u do in your company. What does your company do?
For no apparent reason i started babbling. He got the hint and completed the sentences for me. While i kept quoting Spring and Hybris and other heavyweight technologies he simply translated them as 'Oh!!! Servlets, Controllers and JSP's. Okki". And frankly he was looking for a lot less. All he wanted was somebody that knew core java. Call me pessimist but at this point i knew it's over.

Q.4 How did you find the written test.
Me.  I was looking for Java so this was quite a surprise.
          Yeah, don't you know that i am the inventor of Java. How dare dost thou asketh me these petty questions.

Q.5 Why is String immutable?
Explaining the entire history of StringBuffer and StringBuilder did not cut any ice. Saying that since all the primitive types and there corresponfing wrapper classes are immutable as well so String was made immutable to give it a primitive like 'look and feel', was not much correct as well. Later, he explained that if it were not immutable how would you create a pool of String. It had something to do with saving heap space and getting it thread-safe. I am still working on finding the semantic meaning of that sentence.

Q.6 What is serializable. When do you use it. How do u serailize and deserialize an object. Do you use toString()  to Serialize an object?
Explained that serializable is used to bring objects in a persistance state so that they maybe written in a file. You can serialize by implementing the Serializable interface. Using toString() will simply return a String <Class Name>@<hashcode>, so there must be another mechanism.

Q.7 Sensing that i am faltering he asked what Database do i use.
Me. Actually there is no such database. We push data in the data base 'Endeca' from hybris using cronjobs like partial update and baseline update. Hybris also has a database of its own that stores some information.
Listening to even more heavyweight words confirmed his earlier premonitions. Now he had an active dislike in my candor. It was only a matter of minutes now.

Q.8 What are the collections available in Java?
Me. List, Set, Map...

Q.9 Difference between List and Set?
Me. Set has all unique elements while List may have non-unique elements.

Q.10 How does Set check if we are adding unique elements?
Me. Inside there must be a loop.
Him. But how?
Me. It compares and finds if the element already exists.
Him. But how does it compare the class that i just created say 'Student'?
Me. It should be having generic coding inside i.e. using <T> and that <T> will get replaced by Student at run time.
Him. But how does it do that?
Me. It must be having a check == or equals() to compare.
Him. Which one?
Me. == checks if both the refrences are pointing to the same object and equals() compare the values or whatever we override.
Him. So which one?
Me.Ummm.....welllllll.....................aaaaaaaaaaaaaaaa...................hashcode..........something something.....................ummmmmmmmmmm
Him. Oki if hashcode() comparison of two references returns true  does that mean they are equal?
Me. No. if hashcode() returns true then the two references may be equals/ may not be equal but if it returns false, then equals() will return false for sure.
Him. Then why not use simply hashcode() comparison. Why go for equals() ?
Me. Totally blank face.
Can't believe it started from something as innocent as Set.

Q.11 What are the conditions/ restrictions on overriding a method?
Me. The child class must have the access specifier that is less restricitve or same as parent method. Example if parent class has its method specified as protected, then the child class can make it either public or protected.
Him. Why is that? Why not more restrictive?
Me. After thinking the hell out of my brain. When you override a method you make a refernce of parent type. Initialize it with the object of child type and then call an overridden method using that reference. Now, if it were more restricitive. Then  calling the overridden method would result in an exception.
Him. During runtime or compile time?
Me. During runtime. That's when overriding comes into play.

Q.12 You work on Spring. Right?
Me. Aye. I do.
Him. All that controller and servlets. Okki. So if you define a global variable,which acts as a counter in your servlet and 50 requests are made to that servlet then what will be value of that counter at the end of all the requests. All requests are coming simultaneously.
Me. That vaiable is static. Ain't it!!
Him. Does that even matter?
Me. Yeah. Coz the servlet will make multiple threads.
Him. But the object will still be the same. Isn't it. The container creates one object for a servlet and then that servlet can have many threads sharing the same variable space.
Me. Then we can't say what will be the final value as it is not thread safe.
Him. What can we do to make it thread safe?
Me. Put it into synchronized block.
Him. Any other method?
Me. No idea.
Him. Actually there is a keyword atomic which puts the variable in locations which are thread safe.

Q.13 Anything you wanna ask me ?
Me. What is unicommerce?
Him. ITs a company founded around 1.5 years ago. We provide services for inventory management and eommerce.
Now comes the final nail in my coffin.
Soooooooooooooo, we will contact you later.
I know. I have heard it many times.


  1. Hi
    What were the coding questions?

  2. You screwed up the interview nicely :P

  3. Q7 . Ans is 8

  4. answer for question 13 is 31.Only perfect square numbers will be on.

  5. Answer of question 6 is 249 as you have thougth only upto a number made up of 3 multiples of 5, what about a number having 4 multiples of 5 i.e. 625
    answer of question 8 is 45. -> for max speed y should be zero. so the speed of the man is 3/4 of the trains speed.

  6. What were the coding questions?