Skip to main content

May-14 2020 Challenge




Implement Trie (Prifix Tree)


Implement a trie with insertsearch, and startsWith methods.

Example:
Trie trie = new Trie();

trie.insert("apple");
trie.search("apple");   // returns true
trie.search("app");     // returns false
trie.startsWith("app"); // returns true
trie.insert("app");   
trie.search("app");     // returns true

Note:
  • You may assume that all inputs are consist of lowercase letters a-z.
  • All inputs are guaranteed to be non-empty strings.

Solution in python:


class Trie(object):
   def __init__(self):
      self.child = {}
   def insert(self, word):
      current = self.child
      for l in word:
         if l not in current:
            current[l] = {}
         current = current[l]
      current['#']=1
   def search(self, word):
      current = self.child
      for l in word:
         if l not in current:
            return False
         current = current[l]
      return '#' in current
   def startsWith(self, prefix):
      current = self.child
      for l in prefix:
         if l not in current:
            return False
         current = current[l]
      return True
ob1 = Trie()
ob1.insert("apple")
print(ob1.search("apple"))
print(ob1.search("app"))
print(ob1.startsWith("app"))
ob1.insert("app")
print(ob1.search("app"))


leetcode graph leetcode google leetcode group anagrams leetcode github leetcode google interview questions lis 
leetcode google interview leetcode greedy leetcode gas station leetcode house robber leetcode happy number leetcode hashmap leetcode help center leetcode heap leetcode hard problems leetcode history
leetcode graph leetcode google leetcode group anagrams leetcode github leetcode google interview questions lis   leetcode google interview leetcode greedy leetcode gas station leetcode house robber leetcode happy number leetcode hashmap leetcode help center leetcode heap leetcode hard problems leetcode history  leetcode happy number solution leetcode ide leetcode interview questions leetcode internship leetcode island perimeter leetcode india leetcode intersection of two linked lists leetcode implement trie leetcode interview experience leetcode java leetcode javascript leetcode jump game leetcode java solutions leetcode jump game ii leetcode javascript solutions leetcode java questions leetcode jobs leetcode knapsack leetcode knapsack problem leetcode kth smallest element leetcode kmp leetcode k closest points leetcode kth smallest element in a bst leetcode kadane leetcode keys and rooms

leetcode happy number solution leetcode ide leetcode interview questions leetcode internship leetcode island perimeter leetcode india leetcode intersection of two linked lists leetcode implement trie leetcode interview experience leetcode java leetcode javascript leetcode jump game leetcode java solutions leetcode jump game ii leetcode javascript solutions leetcode java questions leetcode jobs leetcode knapsack leetcode knapsack problem leetcode kth smallest element leetcode kmp leetcode k closest points leetcode kth smallest element in a bst leetcode kadane leetcode keys and rooms

Comments

Popular posts from this blog

Leetcode 371. Sum of Two Integers. C++ / Java

371 .  Sum of Two Integers   Given two integers  a  and  b , return  the sum of the two integers without using the operators   +   and   - .   Example 1: Input: a = 1, b = 2 Output: 3 Example 2: Input: a = 2, b = 3 Output: 5   Constraints: -1000 <= a, b <= 1000 Solution :  C++ : class Solution { public: int getSum(int a, int b) { if (b==0) return a; int sum = a ^ b; int cr = (unsigned int) (a & b) << 1; return getSum(sum, cr); } }; Java :  class Solution { public int getSum(int a, int b) { while(b != 0){ int tmp = (a & b) << 1; a = a ^ b; b = tmp; } return a; } } Explaination :

Leetcode 217. Contains Duplicate. Python (Easiest Approach ✅)

217 .  Contains Duplicate   Given an integer array  nums , return  true  if any value appears  at least twice  in the array, and return  false  if every element is distinct.   Example 1: Input: nums = [1,2,3,1] Output: true Example 2: Input: nums = [1,2,3,4] Output: false Example 3: Input: nums = [1,1,1,3,3,4,3,2,4,2] Output: true   Constraints: 1 <= nums.length <= 10 5 -10 9  <= nums[i] <= 10 9 class Solution: def containsDuplicate(self, nums: List[int]) -> bool: hs = set() for n in nums: if n in hs: return True hs.add(n) return False Explaination :

Leetcode 322. Coin Change. Python (Greedy? vs DP?)

322 .  Coin Change You are given an integer array  coins  representing coins of different denominations and an integer  amount  representing a total amount of money. Return  the fewest number of coins that you need to make up that amount . If that amount of money cannot be made up by any combination of the coins, return  -1 . You may assume that you have an infinite number of each kind of coin.   Example 1: Input: coins = [1,2,5], amount = 11 Output: 3 Explanation: 11 = 5 + 5 + 1 Example 2: Input: coins = [2], amount = 3 Output: -1 Example 3: Input: coins = [1], amount = 0 Output: 0   Constraints: 1 <= coins.length <= 12 1 <= coins[i] <= 2 31  - 1 0 <= amount <= 10 4   Solution : class Solution:     def coinChange(self, coins: List[int], amount: int) -> int:         dp = [amount + 1] * (amount + 1) #[0...7]         dp[0] = 0        ...