Problem statement Given a string containing just the characters ( and ), find the length of the longest valid (wellformed) parentheses substring. Sample input
Sample output
Sample input 1
Sample output 1
Solution We will solve this problem using a Stack. We are going to iterate . . . Read more
Disclaimer: The experiences (e.g. BMW software engineer interview experience) mentioned in this blog were submitted by readers anonymously. It is by no means the intention of this blog to smear the companies mentioned. Rather the sole purpose is to give prospective candidates the opportunity to gain insight information on working . . . Read more
Problem statement Given an array of integers sorted in ascending order, find the starting and ending position of a given target value. If the target is not found in the array, return . Sample input
Sample output
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

class Solution(object): def search(self, nums, n, start, end, ans): if start > end: return mid = start + (end  start)//2 if n == nums[mid]: ans[0] = min(ans[0], mid) ans[1] = max(ans[1], mid) self.search(nums, n, start, mid1, ans) self.search(nums, n, mid+1, end, ans) def searchRange(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ ans = [len(nums), 1] self.search(nums, target, 0, len(nums)1, ans) if ans[0]==len(nums): return [1,1] return ans def main(): solution = Solution() print(solution.searchRange([5, 7, 7, 8, 8, 10], 8)) if __name__ == "__main__": main() 
By now you may know that PHP 7 has been available for quite some time now coming with a number of improvements over version 5. It may be wise to upgrade to PHP7 when running for instance a WordPress using Amazon AWS where you are responsible for any upgrades. Also . . . Read more
Problem statement Given n nonnegative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. Sample input
Sample output
Solution We can solve this problem in time by iterating over the array twice. Once . . . Read more
Problem statement Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given below. Sample input
Sample output

["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"] 
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

class Solution(object): def solve(self, digits, i, current, ans): """ :type digits: str :rtype: List[str] """ if len(digits) == 0: if len(current) > 0: ans.append(current) return mapping = {2:['a','b','c'], 3:['d','e','f'], 4:['g','h','i'], 5:['j','k','l'], 6:['m','n','o'], 7:['p','q','r', 's'], 8:['t','u','v'], 9:['w','x','y', 'z']} d = ord(digits[i])  48 chars = mapping[d] for c in chars: self.solve(digits[i+1:], i, current + c, ans) def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ ans = [] self.solve(digits, 0, '', ans) return ans def main(): solution = Solution() print(solution.letterCombinations("23")) print(solution.letterCombinations("")) if __name__ == "__main__": main() 
Problem statement Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., might become ). You are given a target value to search. If found in the array return its index, otherwise return . You may assume no duplicate exists in the array. . . . Read more
Problem statement The string PAYPALISHIRING is written in a zigzag pattern on a given number of rows like this:

P A H N A P L S I I G Y I R 
And then read line by line: PAHNAPLSIIGYIR. Write the code that will take a string and make this conversion given a number of rows: Sample input
Sample output
. . . Read more
Problem statement Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order). The replacement must be inplace, do not allocate extra memory. Here are some examples. . . . Read more
Problem statement Merge k sorted linked lists and return it as one sorted list. Solution We reduce the problem to the merging of two linked lists problem. This can be done in time and space. So we first write out the function to merge two sorted lists:

def merge(self, lst1, lst2): if lst1 == None: return lst2 if lst2 == None: return lst1 if lst1.val < lst2.val: lst1.next = self.merge(lst1.next, lst2) return lst1 else: lst2.next = self.merge(lst1, lst2.next) return lst2 
We can . . . Read more