Write a program to reverse a singly linked list? Modify that program to reverse a doubly linked list.
Ruby Algorithm Interview Questions
Suppose I have the following Array of tuples
[ ['a',1], ['b',2], ['c','3' ]
How can I convert this to a Hash?
{ 'a' => 1, 'b' => 2, 'c' => 3}
Once I've written the algorithm, how would I make it generally available throughout my Ruby application?
Assume that you have access to an employee's email Inbox, and that you can parse the content of their emails, including the email headers.
- How can you use this to deduce their first-degree connections?
- What kind of heuristics can you come up with to quantify the strength of these first-degree connections?
- How can you use this to deduce their second-degree connections?
- How can you use this to deduce their third-degree connections?
Suppose you have an array of 99 numbers. The array contains the digits 1 to 100 with one digit missing. Describe four different algorithms to compute the missing number. Two of these should optimize for low storage and two of these should optimize for fast processing.
Write a string to find a substring in a given string. Do this in O(n) or better
Write an iterative function to reverse a string. Do the same thing as a recursive function.
Write a function to implement strstr() i.e. find the first occurrence of one string inside another string.
Write a program to print out a multiplication table, from 1x1 to 12x12. This should look like:
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144
Explain big o notation and how it is useful in computer science to classify algorithms.
- What order is a hash table lookup?
- What order is determining if a number is even or odd?
- What order is finding an item in an unsorted list?
- What order is a binary search?
Describe bitwise operators AND, OR, XOR and NOT. Describe how you might use these.
How do these bitwise operators differ from logical operators?
Write a program to find the largest integer in an array of integers.
Write a function that sums up integers from a text file that looks like the following:
1
3
27
2
2123
Write function to print the odd numbers from 1 to 99
Discuss an algorithm to traverse a tree, depth first.
Implement a function with signature find_chars(string1, string2) that takes two strings and returns a string that contains only the characters found in string1 and string two in the order that they are found in string1. Implement a version of order N*N and one of order N.
Write a function to efficiently determine the result of a game of Tic Tac Toe.
The function takes as input the game and the sign (x or o) of the player. The function returns if this player has won the game or not.
Carefully consider both the data structure and the algorithm for your answer.
Efficiently calculate the shortest distance between two Facebook users given an API endpoint that returns all friends of a given user.
Given any integer, efficiently find the next highest integer that uses the same digits.
For example if the number is 15432, you should return 21345.
Write a function that takes an integer and returns the smallest number that is greater than the given number which is a palendrome.
For example, if the input was 111 the next palindromic number would be 121.
Write a function, tokenize_string(input_string, delimiter_list) that returns a list of strings that are separated by the delimiters.
For example: tokenize_string("How now, Mrs. Brown Cow") returns ['How', 'now', 'Mrs', 'Brown', 'Cow']
Given two arrays of strings, A and B.
B contains every element in A, and has one additional member, for example:
* A = ['dog', 'cat', 'monkey]
* B = ['cat', 'rat', 'dog', 'monkey']
Write a function to find the extra string in B. Do this in O(n)
Write a function that takes an unsorted integer array, and returns a three element subset whose sum is zero.
Note: This is a special case of the SUBSET-SUM problem. That problem is NP-complete, but we're only looking for subsets of 3 elements. This can be achieved in polynomial time.
Write a function that takes as input a string, and outputs that same string, with any parentheses in it balanced. Do this using the minimum number of edits.
The least common multiple of a set of integers is the smallest positive integer that is a multiple of all of the integers in the set.
Write a function that takes an array of integers and efficiently calculates and returns the LCM.
Write a function that takes a an array of integers, and returns the contiguous subsequence of integers with the largest sum.
Write a function to return the Nth number of Fibonacci sequence.