The flashcards below were created by user
jbaifreezeblue
on FreezingBlue Flashcards.

Data Structure  String
1) Write code to check a String is palindrome or not?Palindrome are those String whose reverse is equal to original.
2) Write a method which will remove any given character from a String?
3) Print all permutation of String both iterative and Recursive way?
4) Write a function to find out longest palindrome in a given string?
5) Difference between String and StringBuffer in Java
6) Why String is final in Java
7) How to Split String in java
8) Why Char array is preferred over String for storing password?

Data Structure  Array
5) In an array 1100 numbers are stored, one number is missing how do you find it?
6) In an array 1100 exactly one number is duplicate how do you find it?This article contains a trick to find duplicates in Array using Java programming language
7) In an array 1100 many numbers are duplicates, how do you find it?trick in this programming questions is by using hashmap or hashtable , we can store number as key and its occurrence as value, if number is already present in hashtable then increment its value or insert value as 1 and later on print all those numbers whose values are more than one.
8) Given two arrays, 1,2,3,4,5 and 2,3,1,0,5 find which number is not present in the second array.Here is a quick tip to solve this programming question: put the elements of the second array in the Hashtable and for every element of the first array, check whether it’s present in the hash or not, O/P all those elements from the first array that are not present in the hash table
9) How do you find second highest number in an integer array?

Data Structure  Linked List
10) How do you find middle element of a linked list in single pass?To answer this programming question I would say you start with simple solution on which you traverse the LinkedList until you find the tail of linked list where it points to null to find the length of linked list and then reiterating till middle. After this answer interviewer will ask you find the middle element in single pass and there you can explain that by doing spacetime tradeoff you can use two pointers one incrementing one step at a time and other incrementing two step a time, so when first pointer reaches end of linked second pointer will point to the middle element.
11) How do you find 3rd element from last in single pass?This programming question is similar to above and can be solved by using 2 pointers, start second pointer when first pointer reaches third place.
12) How do you find if there is any loop in singly linked list? How do you find the start of the loop?This programming question can also be solved using 2 pointers and if you increase one pointer one step at a time and other as two steps at a time they will meet in some point if there is a loop.
13) How do you reverse a singly linked list?

Data structure  Tree
14) How do you find depth of binary tree?
15) Write code to print InOrder traversal of a tree?
16) Print out all leaf node of a binary tree?

Data Structure  Search and Sort
17) Write a program to sort numbers using quick sort?
18) Write a program to implement binary search algorithm
19) How do you sort Java object using Comparator?

Data Structure  Number
19) Write code to check whether a no is power of two or not?
20) Write a program to check whether a no is palindrome or not?check out this post which shows how to reverse number in Java and can be used to find if its palindrome or not.
21) Write code to check whether a no is Armstrong no or not Here is a Java program to find Armstrong number, you can use same logic to write code in any other programming language like C and C++.
22) Write a program to find all prime number up to a given numbers?Here is another Java program to find prime numbers and print them. By using logic demonstrated in this program; you can write similar program in C and C++.
23) Write function to compute Nth Fibonacci number? Both iterative and recursive?

General Programming
1) Write a program to find out if two rectangles R1 and R2 are overlapping?
2) You need to write a function to climb n steps you can climb either 1 step at a time or 2 steps a time, write a function to return number of ways to climb a ladder with n step.
3) Write code for Generate Random No in a range from min to max?
4) Write program for wordwrap which should work on any screen size?
28) Design an algorithm to find the frequency of occurrence of a word in an article?
5) Write a program to implement blocking queue in Java?
6) Write a program for producerconsumer problem?
7) Find trailing zeros in a factorial

Tips
1. If Interviewer asks you to write function then make sure you do some necessary check for bad input e.g. null check or empty check. Most of the time programmer forgets to test for not null, empty, less than 1, greater than 1 or zero input.
2. If you write iterative version of function then Interviewer may ask you to write recursive version or viceversa so be prepare for that.
3. If you write a recursive function then Interviewer will ask to optimize it, even in case of Iterative version. So remember that you can optimize recursive function by Memorization (caching already calculated value) and by applying some space/time tradeoff principle. For example recursive version of Fibonacci series has O(n2) which can be reduced to O(n) using Memoziation.
4. Interviewer may ask you to calculate Order of complexity for best and worst case of any method so be prepared.
5. Most of the time Interviewer ask how to fix a problem as followup question e.g. he will ask how do you find deadlock and then how to fix deadlock in java etc.

