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

May-6 2020 Challenge

  6.   Majority Element Given an array of size  n , find the majority element. The majority element is the element that appears  more than   ⌊ n/2 ⌋  times. You may assume that the array is non-empty and the majority element always exist in the array. Example 1: Input: [3,2,3] Output: 3 Example 2: Input: [2,2,1,1,1,2,2] Output: 2 Solution in Java  class Solution {     public int majorityElement(int[] num) {         int m = num[0], cnt= 1;     for (int i = 1; i < num.length; i++) {         if (cnt == 0) {             m= num[i];             cnt = 1;         } else if (num[i] == m) {             cnt++;         } else              cnt--;    }      return m;...

Leetcode 424. Longest Repeating Character Replacement. Python (Sliding Window)

  424 .  Longest Repeating Character Replacement You are given a string  s  and an integer  k . You can choose any character of the string and change it to any other uppercase English character. You can perform this operation at most  k  times. Return  the length of the longest substring containing the same letter you can get after performing the above operations .   Example 1: Input: s = "ABAB", k = 2 Output: 4 Explanation: Replace the two 'A's with two 'B's or vice versa. Example 2: Input: s = "AABABBA", k = 1 Output: 4 Explanation: Replace the one 'A' in the middle with 'B' and form "AABBBBA". The substring "BBBB" has the longest repeating letters, which is 4.   Constraints: 1 <= s.length <= 10 5 s  consists of only uppercase English letters. 0 <= k <= s.length Solution :  class Solution: def characterReplacement(self, s: str, k: int) -> int: hm = {} ans = 0 ...

Leetcode 190. Reverse Bits. Python. Bit Manipulation

  190 .  Reverse Bits Reverse bits of a given 32 bits unsigned integer. Note: Note that in some languages, such as Java, there is no unsigned integer type. In this case, both input and output will be given as a signed integer type. They should not affect your implementation, as the integer's internal binary representation is the same, whether it is signed or unsigned. In Java, the compiler represents the signed integers using  2's complement notation . Therefore, in  Example 2  above, the input represents the signed integer  -3  and the output represents the signed integer  -1073741825 .   Example 1: Input: n = 00000010100101000001111010011100 Output: 964176192 (00111001011110000010100101000000) Explanation: The input binary string 00000010100101000001111010011100 represents the unsigned integer 43261596, so return 964176192 which its binary representation is 00111001011110000010100101000000 . Example 2: Input: n = 11111111111111111111...