Adobe Interview Questions

Its been a long time made any posts on this blog. Let me try to share a bunch of my interview experiences. Starting with the letter A 😉 – Adobe

I had an interview with Adobe in early 2009 in their Bangalore Office, when Trilogy was shutting down its Office. I had about 8 months work experience by then

It started with a written test for 2 hours. There were about 7 or 8 (out of 80+) folks short listed for further rounds.

First Round:
1. There was a discussion around Makefiles

2. I heard a new term in this question – Distributed compilations. The questions was – how would you design such a system. A basic introduction was given about the system.

3. Assume there is a “container” the container have some “components” and each component in turn contains “items”, the components have some “properties”, also the items have some properties and some components depend on the properties of some other components by which I mean if the property of one component changes then the components behaviour which is dependent on this should alter. What data structure would you use in order to maintain this information.

4. Given 2 linked lists how to find the intersection. Imagine a Y shaped linked list.

Second Round:
1. You know malloc and free() functions. malloc knows the number of bytes to allocate, where as free() just takes a pointer and frees the same amount of memory that has been allocated to this address. if I ask you to implement this malloc() and free(), what would be underlying Data Structure that you would use in order to maintain the information required. It was a good discussion on complexity various approaches etc.
2. Given a string find first non-repeating character.

3. And some good ones which I don’t remember

Third Round
1. Reverse a linked list recursively without using global variables

2. Finding anagrams of a given word from a dictionary

3. Forgot the rest 😦

Fourth Round:
1. Discussion about Yahoo! project,work in Trilogy, technologies known.

2. How to implement a generic stack in Java

Find nodes in a binary tree which are at a distance K from a given node

You are given a binary tree and a node in the tree, your task is to find all the nodes in the binary tree which are at a distance K from that node. These nodes can be downwards [descendants of the node] or upwards.

For example: In this image

The nodes that are at a distance 2 from 7 are 5 (6’s left child), 11, 5 (2’s right child).

This is a coding question.

Function prototype:

void PrintKDistanceNode(Node *root, Node *node, int K)



Write a URL shortner.

Write a URL shortner (like tinyurl) . Take a URL as input & return a shortened URL. If you use any kind of storage or persistence, please use the appropriate API’s of the language. Another requirement is that we want to make our URLs as different as possible, so that successive calls return very different URIs
This is to ensure that small typo errors do not lead to users getting to a valid URL, but rather throwing up an error page.

Let start with the design 🙂 and then come up with an implementation probably in Java/C etc.

The interviewer asked me to implement it in Java.

Small Note: Googling for this can give you a code written in PHP right away as your first link :-), please dont start with it. Come up with your own logic.