I really really like the way Tushar explains things, not giving out the code, but just the understanding one needs for the problem . Truly appreciate your effort @Tushar
Wow. I just want to say thank you from the bottom of my heart. You are an amazing teacher. And you have no idea how much making these videos means to me. Thank you again
I think it's wonderful that you took the time to go over the code. I'm much more happy to see that you explained both the recursive and iterative implementations of the functions. Thanks so much!
Wow, I know more about deep software system analysis in a few minutes of listening to this man than all my time interacting with devs in almost 6 years.
By far the best explanation for trie data structure. Thanks a ton for this video. What makes this video unique is the usage of sample strings to explain , which cover the corner cases.
This video has helped me a lot in understanding Tries. The concepts were well-explained and I was able to come up with my own implementation on C++ fairly easily. Thanks!
Thank you very much @Tushar Roy for this tutorial. You really did a good job, explaining it clearly. I was able to do the coding challenge on HackerRank that is of difficulty level Hard very easily.
There is a small bug in delete method. It should be "return !root.isEndOfWord && root.children.size() == 0;". Else that would delete all prefixed characters as well Thanks so much Tushor for everything that you do for us
Thanks for your useful labour here Tushar! I'd recommend getting a "lavalier" or just "lav" microphone; they're the ones that you clip onto your shirt's lapel. It would help the audio quality a _lot_, and make following the explanations a lot easier for international people who only know English as a second language. Lavalier mics are also relatively cheap compared to other kinds of microphone.
Awesome video. However, there is one error in the code : While returning inside if(shouldDeleteCurrentNode) , it should be return current.children.size() == 0 && !current.endOfWord; Basically, if a word is ending at this node, then we shouldn't delete this node. Consider for example if we insert "jayesh" and "jay" in the trie and delete "jayesh", it would delete both the strings which is incorrect.
Thanks for the amazing video. You are doing a great job and I really appreciate your effort. Your videos helped me a lot. Although this is very trivial, I would like to point out that in the code provided, If there are "abc" and "ab" in the Trie, after removing "abc", the search for "ab" return false. Again thanks for the video.
I feel the highlighted line @19:31 should be:return current.children.size() == 0 && !current.endOfWord;Imagine this case:Insert("ab");Insert("a");Delete("ab"); Your code will also delete "a"?
+Tushar Roy - Coding Made Simple - I have a question at 12:55 Lets say, there is another word "cbc", which means that it will end at the node "c". Now we have two words '"abc" and " cbc". So when we delete the word "abc", we mark the node following "c" to false which would also delete "cbc". So how do we handle this scenario ?
"abc" starts with 'a' and "cbc" starts with c, so they will have different starting paths from the base root node. This situation will never occur. both will have an ending 'c' node, but these will be two different and independant nodes. Hope you understood! :)
Very nice explanation just as in your other videos. Thanks!! I think there is something wrong at 6:55, in TrieNode containing d, the endofword is marked as true. It should be false and only its child should represent endofword as true.
When we search a whole word "abc", our algorithm should make sure that is end of the word (next child node, where the "d" is" should have end of the word marked as True "T". That is how we will know. Hope this helps!
I really really like the way Tushar explains things, not giving out the code, but just the understanding one needs for the problem . Truly appreciate your effort @Tushar
Actually the code to the problem is in description box. But yes your point is commendable
Bro.. You're the best tutor i know man.. Thanks a lot...
Check Mr.Abdul Bari for Algorithms...He is More than Amazing..This guy is good too
If he is the best tutor you know, you really need to see the world ...
@@Yagamilight19383 stop comparing pagalo....
^^ This, Tushar is totally a friend.
@@Yagamilight19383 200% true..., yeah he is good but not the best...
Wow. I just want to say thank you from the bottom of my heart. You are an amazing teacher. And you have no idea how much making these videos means to me. Thank you again
I think it's wonderful that you took the time to go over the code. I'm much more happy to see that you explained both the recursive and iterative implementations of the functions. Thanks so much!
one of the best tutorials i have seen on tries.
Trie was used to one of the nightmares for me...because of your video it becomes so easy...thank you :)
It's 2020 and still this is best channel to learn data structures and algorithms.
Well I haven't went through all the videos about Trie yet but this is by far the best. Great work!
I cannot even say how thankful I am to you for making this video. Thank you very much! Great explaination.
You are the best data structure & algorithms instructor I have ever seen in my life.
Thank you so much Tushar literally watching your videos has helped me pass engineering and its still helping while working as a professional.
Best walkthrough of Trie I have ever seen.
Excellent explanation!! When I find algorithm descriptions like this I feel I can reconstruct the code any moment ever. Thank you.
this is a great piece. i am revisiting this video today after a year again
Wow, I know more about deep software system analysis in a few minutes of listening to this man than all my time interacting with devs in almost 6 years.
Thanks :) - I've learn trie before but needed a refresh
You have just made my day! Always feared of the word Trie, Now I feel very comfortable implementing it. Just Superb Job, Thanks
By far the best explanation for trie data structure. Thanks a ton for this video. What makes this video unique is the usage of sample strings to explain , which cover the corner cases.
this is superb, can't thank you enough dude, keep on uploading such quality content.
This is the best explanation of Trie, you really helped readers establish a proper mental model of this data structure and it’s implementation.
Top notch. I've heard of trie but have never learned about it before.
Thanks a lot man, I have always stayed away from Trie but now after watching your video it seems so easy. :)
Simple and to the point explanation . Thankyou so much, your videos are really help full.
Great explanation. You missed to mark node "False" at 6:55, when inserting "d" value.
This is the best video in youtube for Trie data structure i have found!
Sir, your explanation is very clear and easy, your video helps me to understand this topic in a very easy way!!.
Thank you😊
Thumbs Up!!! The examples you take to demonstrate the concept are quite good
This guy is really amazing at teaching new concepts
This video has helped me a lot in understanding Tries. The concepts were well-explained and I was able to come up with my own implementation on C++ fairly easily. Thanks!
You are a good teacher and a good Developer
Thank you so much! This is the best tutorial on Tries. I really appreciate your efforts.
excellent video on tries. Never understood tries before watching this video!!
explained in very easy way...very good Tushar
Thanks @tushar. Your explanations are very easy to understand. it really help to learn quickly.
This is really awesome, long live Tushar!!
Simple and superb explanation..thanks tushar roy!!
Thank you Tushar this is a great, well explained lecture
Excellent! It doesn't get any better. Thank you for your explanation!
Superb explanation!! Was waiting for this video. Thanks so much for taking out time!
Great explanation @Tushar Roy
Hello Tushar, I listen to your videos because I like your introduction "Hello Friends" Thanks for the videos
thanks sir . such a elegant explanation , easy to understand , better then one on gfg.
its very good that you are at first explain then give a code its very good plz do that with other videos that you will be share
Thank you very much @Tushar Roy for this tutorial. You really did a good job, explaining it clearly. I was able to do the coding challenge on HackerRank that is of difficulty level Hard very easily.
Great video and code, now I am clear about the TRIE
Awesomely clear explanation. Thanks for sharing knowledge.
Very nice explanation! It really helps me understand the trie data structure!
Great explanation Tushar dada! you make things simple for new programmers :)
great intro to tries thank you, now to try this leetcode problem in python...
best video on trie ever and forever.
Excellent video for understanding Trie implementation ! Thanks a lot !
There is a small bug in delete method.
It should be "return !root.isEndOfWord && root.children.size() == 0;".
Else that would delete all prefixed characters as well
Thanks so much Tushor for everything that you do for us
My trie is super clear after watching your video....thank you for creating this video:))....it would be great if you teach ternary search tree also...
You are a talent!!! good examples and excellent explanations
nice video. the videos which you present are really good..man..
waited for this video . Thanks so much ...
great way to explain the topics. crystal clear
Excellent Explanation. at 16:37 in video, in Insert method, node = current.children.get(ch) NOT current=node; this will fail at every first character.
Best Video to understand the concept in detail
Nice Explanation,
I save lot time to me in understanding this data structer.
As always very helpful
Wonderful explanation and simple coding..
Ek like to bnta hai tushar bhai k liye .sa b like kro bhai ka video
Amazing explanation, thank you so much
Your explanations are very clear. Thank You for your efforts. Please make a video on Suffix Array.
Thanks for your useful labour here Tushar! I'd recommend getting a "lavalier" or just "lav" microphone; they're the ones that you clip onto your shirt's lapel. It would help the audio quality a _lot_, and make following the explanations a lot easier for international people who only know English as a second language. Lavalier mics are also relatively cheap compared to other kinds of microphone.
I like your videos: sufficient exemplar demonstrations and clear codes!
Awesome explanation. Thanks a lot!
Very clear and simple explanation :) Thanks
I keep waking my computer screen when this video goes to a next section lol
Thanks Tushar, very good explanation.....video was very helpful!!
excellent explanation! your videos are really helpful
Awesome video!! Keep up the good work
perfectly explained good job as always!
That code was really beautiful man! Awesome!
I love your videos. Thanks. You are the best.
Kudos Tushar, you are an epitome of how to put up things in a concise and easy way , was really helpful, kindly upload more such videos
Excellent.. Exactly like my notes
Excellent explanation. I think this would be so easy to implement in a functional programming language like Haskell...will have to try thst
Beautiful explanation Tushar
Awesome video. However, there is one error in the code :
While returning inside if(shouldDeleteCurrentNode) , it should be return current.children.size() == 0 && !current.endOfWord;
Basically, if a word is ending at this node, then we shouldn't delete this node.
Consider for example if we insert "jayesh" and "jay" in the trie and delete "jayesh", it would delete both the strings which is incorrect.
Good catch!
love your channel! pls keep up the good work:)
Thanks for the amazing video. You are doing a great job and I really appreciate your effort. Your videos helped me a lot.
Although this is very trivial, I would like to point out that in the code provided,
If there are "abc" and "ab" in the Trie, after removing "abc", the search for "ab" return false.
Again thanks for the video.
if (i == input.length()) {
if (!current.endOfWord) {
return false;
} else if(current.children.size() > 0) {
current.endOfWord= false;
}
return current.children.size() == 0;
}
I feel the highlighted line @19:31 should be:return current.children.size() == 0 && !current.endOfWord;Imagine this case:Insert("ab");Insert("a");Delete("ab"); Your code will also delete "a"?
叶子豪 i just thought about the same scenario.. thanks to your comment, i was able to validate my understanding as well..
Amazing explaining! Thank you so much!
Make inner class TrieNode Static so that it does not require an instance of the outer class to be used. Amazing video!
Great tushar .. Keep it up
Wow. Really good explanation!
A good simple to the point tutorial. Thx
Great video ❤️
Nice and clear explanation. Thanks :)
Awesome video man :) you made it so simple.
Nice Video...Thanks for your effort to make this video..
Amazing explanation as always
best explanation on trie
Tushar bhai tussi great ho!
awesome man ... hats off to you
Nice explanation, thanks for the video.
+Tushar Roy - Coding Made Simple - I have a question at 12:55
Lets say, there is another word "cbc", which means that it will end at the node "c". Now we have two words '"abc" and " cbc". So when we delete the word "abc", we mark the node following "c" to false which would also delete "cbc". So how do we handle this scenario ?
"abc" starts with 'a' and "cbc" starts with c, so they will have different starting paths from the base root node. This situation will never occur. both will have an ending 'c' node, but these will be two different and independant nodes.
Hope you understood! :)
+ Nitisha Sarin - Thank you for the explanation.
Very nice explanation just as in your other videos. Thanks!!
I think there is something wrong at 6:55, in TrieNode containing d, the endofword is marked as true. It should be false and only its child should represent endofword as true.
I'm sorry. I realised where I was going wrong. There wasn't any mistake. I was a bit confused.
can you explain me that d thing i am still confused so?
When we search a whole word "abc", our algorithm should make sure that is end of the word (next child node, where the "d" is" should have end of the word marked as True "T". That is how we will know. Hope this helps!
Supporting the explanation of Bobby Choi, the part of the video that explains this concept is between 10:54 - 11:20