@@abdul_bari You made the most clear explanation on where the KMP algorithm comes from, instead of just showing us how to compute the KMP array using the pattern string. The way you teach allows students to understand the background, thus we can always recall the algorithm even if we forget. This is the same idea on learning math. You are a great teacher! :)
You might have heard it many times, but still I prefer mentioning it that all these efforts you made to make such valuable contents free of cost is amazing, This is going to serve many programmers for the next coming years as well. Be it your way of explanation, your intuition every thing is just perfect. And we the programming community is thankful to you sir. I do hope that you will be making more videos in the coming years. That is the only negative thing that I hear about this otherwise wonderful channel it that the advanced data structures and algorithms are not being covered. This is just a feedback from someone who has been following your videos for quiet a long time. Again thank you sir
🎯 Key Takeaways for quick navigation: 00:00 *🧐 KMP Algorithm Introduction* - Introduction to the Knuth-Morris-Pratt (KMP) algorithm for pattern matching. - Overview of the problem: finding a pattern within a given string. - Mention of basic algorithm and the need for more efficient solutions. 07:42 *📊 KMP Algorithm Terminology: Prefix and Suffix* - Explanation of terminology in KMP algorithm: Prefix and Suffix. - Definition of prefix: a subset of pattern characters starting from the beginning. - Definition of suffix: a subset of pattern characters starting from the right. 09:50 *📝 KMP Algorithm Pie Table Generation* - Demonstration of how to generate the Pie Table (or Longest Prefix Same as Suffix) for a given pattern. - Illustration using multiple examples to build the Pie Table. - Importance of the Pie Table in optimizing pattern matching comparisons. 12:21 *⚙️ KMP Algorithm Working Principle* - Step-by-step walkthrough of the KMP algorithm's working on a pattern and string. - Emphasis on avoiding backtracking in the main string (no i backtracking). - Handling mismatches by adjusting the indices, focusing on moving J while keeping I's position. 18:23 *🕰️ KMP Algorithm Time Complexity Analysis* - Time complexity analysis of the KMP algorithm. - Breakdown of time spent on parsing the string, preparing the Pie Table, and searching for the pattern. - The overall time complexity is linear, making it an efficient pattern matching solution. Made with HARPA AI
This algorithm is mostly used in research field. Interviewers won't expect you to formulate KMP in a span of an hour. Rabin-Karp with rolling hash function is some want less complex and less efficient algo(Better than naive though) which can be used in an interview. That being said, I'm only here for this legend's explanation, I'm a big fan from Chennai, sir.
Before playing this video, I watched the explanation by some other expressive UA-camrs, But honestly, no one is nearer to the way you explained the thought process of the KMP algorithm. Thank you for your lucid explanation.
hello Sir, I know I might be mistaken but at 11:25 aren't we supposed to put 3 under be at aab since it matches the prefix sequence aab. Please let me know. Thank you for your concern. And overall I understood the whole thing. Your lectures are the best.
I have seen some videos trying hard to understand kmp, but none of them have given such clarity like u did. Thank you so much 😊. It's a wonder how just a change of few words can make a huge difference in understanding.
Man , I used to watch ur videos during my college days . its been 5 years that i graduated still I learn from your videos. Where is he now , no new videos at all these days
I can't say how much thankful I am. I have read this from book 4 times and still didn't understand a bit, but after watching your video only once fully understand KMP. Thank you so much Abdul sir.
Teachers are God and you are one of them...THANKYOU SO SO SO MUCH SIR. Today, our teacher taught the algo but in a complex way, and said that it will take 2-3 hrs honestly to understand but you saved my time.
Used to watch your videos in my second year, watching again for revision in my final year preparing for placements! ( currently holding two offers from big tech companies)Thanks sir.
Thank you soo much sir for the help i was stuck on this algo for the entire day trying to watch different videos to get a proper explaination and then your video poped up and changed everything :)
This is the best explanation I have ever seen. I have searched for several videos, most of them just focus on implementing without much reasoning. However, after watching this video, I fully understood the principle behind KMP and implemented the algorithm by myself. Thank you very much.
I must say that u are an amazing teacher. In most of the videos, people often suggest tricks, but you explain that trick technically which sounds much more professional. Your videos are great. Please upload illustration of Red-Black Tree.
Funny how my lecturer took 5 hours to teach this topic, and I actually understood during first 30 mins, then he confused me after an hour, I understood again, then he confused me again and pattern repeated, after 5 hours I questioned everything I learnt lol. And this guy did it. the right way
Don't ignore this video because of 19 mins duration, You can set the speed to X1.25 and listen. Each and every input from this legend is just amazing Thank you sir. Happy learning😀
Dude I love the video so much. When you found that last match it gave me a big smile. This algorithm is cool! You do such a great job explaining the concept. Thank you for the video.
the basic intuition of kmp algo is when we are matching pattern in a text string whenever we encounter a suffix same as a prefix , and the current string does not match after a string, and we see that this string from suffix might not match furthermore but hey, we also have a prefix which is same as the recent suffix , we can start matching the text right the unmatched index of text string and in the pattern we can start matching from the next of prefix since it is well known that it is in text string so we can start matching from the both next index to the end if matched,we will return the index of matched string for example text = a b c x a b c d a b x a b c d a b c d a b c y pattern= a b c d a b c y at an instant when matching text a b c x a b c d a b x a b c d a b c |d| a b c y pattern a b c d a b c |y| y and d is not matching so rather than looking from the start of text string we will look from d again and in the pattern string before 'y' we will check if there is a suffix - prefix match and that there is |a b c| d |a b c| y so we can start from here suffix's previous value (prefix)(whenever same only) a b c x a b c d a b x a b c d a b c d a b c y |a b c| d |a b c| y we are taking the benefit of repitition as the later value does not match so there is a chance that in the previous values there a suffix might match the prefix and we can start from there and we can find the prefix- suffix match with pi array which will we construct using the code vectorlongestprefix_suffix_match(string s){ int n=s.size(); vectorpi; for(int i=0;i
Computer Science students will always be thankful to this legend ❤
yes, true that. He is simply amazing.
chat.whatsapp.com/GSKHF9PdnJkKbjbW0MDgqt
Yess
Not only computer science student ,All engineering student be thankful to this man❤️❤️
not only CS students, Whole community who are interested in Algorithms
this guy achieves to teach things in 20 minutes that university teachers fail to teach in hours
*fail to teach in semesters
@@muscleinjury3331 You need to go to a better university
@@ManishPandey-ub1hj no he is right,same for me
I watch his videos on 2x
@@ManishPandey-ub1hj lol then go to ur University dnt come here.
At 11:33 on pattern P3 aab should be 123 instead of 120
yes true
was wondering the same, thanks for confirming
@@abdul_bari You made the most clear explanation on where the KMP algorithm comes from, instead of just showing us how to compute the KMP array using the pattern string. The way you teach allows students to understand the background, thus we can always recall the algorithm even if we forget. This is the same idea on learning math. You are a great teacher! :)
@@abdul_bari that is not helpful. what would be helpful would be for you to insert an annotation at that point in the video.
C is also matched in P3 so it will be 1234
the pursuit of understanding this algorithm always scares the hell out of me ..... u came as a savior...thanks a lot, Sir.
correction: 11:27 last `b` should be 3. thanks Abdul, I find your explanations more than helpful! keep up the good work!
yup you are right.
yes man,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, shai bola bhai {for indian guys}
non indians nhi dekhte baitheenge @@111rhishishranjan2
yesss
Serious guy.
The best KMP algorithm explanation on UA-cam.
Additionally, the only
@@R0hirrim actually no
Tell the truth BRO
agreed
You might have heard it many times, but still I prefer mentioning it that all these efforts you made to make such valuable contents free of cost is amazing, This is going to serve many programmers for the next coming years as well. Be it your way of explanation, your intuition every thing is just perfect. And we the programming community is thankful to you sir.
I do hope that you will be making more videos in the coming years. That is the only negative thing that I hear about this otherwise wonderful channel it that the advanced data structures and algorithms are not being covered. This is just a feedback from someone who has been following your videos for quiet a long time.
Again thank you sir
7:45 Start KMP (0:00 to 7:45 Naive String Matching Algo)
thank you sir
Thankyou
Thanks for explaining KMP in simple terms
This man has singlehandedly helped me through so much of my undergrad degree. All for free. I can’t thank you enough Mr. Bari!
🎯 Key Takeaways for quick navigation:
00:00 *🧐 KMP Algorithm Introduction*
- Introduction to the Knuth-Morris-Pratt (KMP) algorithm for pattern matching.
- Overview of the problem: finding a pattern within a given string.
- Mention of basic algorithm and the need for more efficient solutions.
07:42 *📊 KMP Algorithm Terminology: Prefix and Suffix*
- Explanation of terminology in KMP algorithm: Prefix and Suffix.
- Definition of prefix: a subset of pattern characters starting from the beginning.
- Definition of suffix: a subset of pattern characters starting from the right.
09:50 *📝 KMP Algorithm Pie Table Generation*
- Demonstration of how to generate the Pie Table (or Longest Prefix Same as Suffix) for a given pattern.
- Illustration using multiple examples to build the Pie Table.
- Importance of the Pie Table in optimizing pattern matching comparisons.
12:21 *⚙️ KMP Algorithm Working Principle*
- Step-by-step walkthrough of the KMP algorithm's working on a pattern and string.
- Emphasis on avoiding backtracking in the main string (no i backtracking).
- Handling mismatches by adjusting the indices, focusing on moving J while keeping I's position.
18:23 *🕰️ KMP Algorithm Time Complexity Analysis*
- Time complexity analysis of the KMP algorithm.
- Breakdown of time spent on parsing the string, preparing the Pie Table, and searching for the pattern.
- The overall time complexity is linear, making it an efficient pattern matching solution.
Made with HARPA AI
I was so happy when i typed the algorithm's name clicked search and this LEGEND shows up!! all CS students love you sir.
sir small correction to be made at 11:30 for the pattern 3 lps array will be lps[] = [0, 1, 0, 0, 1, 0, 1, 2, 3, 0]
Exactly
yes you are right
Yes exactly
This algorithm is mostly used in research field. Interviewers won't expect you to formulate KMP in a span of an hour. Rabin-Karp with rolling hash function is some want less complex and less efficient algo(Better than naive though) which can be used in an interview. That being said, I'm only here for this legend's explanation, I'm a big fan from Chennai, sir.
though they don't expect us to use kmp algorithm in interviews. Knowing the concept and the implementation can turn tables for you in the interview.
@@shritishaw7510 But do they expect us to. know this algo?
Question was asked in Microsoft
@@gladyouseen8160 was the implementation asked??
@@thenishantgiri yes complete implementation
Before playing this video, I watched the explanation by some other expressive UA-camrs, But honestly, no one is nearer to the way you explained the thought process of the KMP algorithm. Thank you for your lucid explanation.
You teach me how to appreciate the beauty of algorithms.
Thank you so much.
Thank you enormously from the Netherlands !
Literally one of the best explainations of KMP on internet :) Keep it up sir.
Its 2021 and its still the best KMP explanation available on UA-cam.
hello Sir, I know I might be mistaken but at 11:25 aren't we supposed to put 3 under be at aab since it matches the prefix sequence aab. Please let me know. Thank you for your concern. And overall I understood the whole thing. Your lectures are the best.
Yes you right, that is a mistake.
That's why sir stuck for a moment but then ....
See the description, he's mentioned it.
Yes that's right
After searching on internet not found anything better than this video, really appreciate!! Thanks for such simple explanation of this algo.
I have seen some videos trying hard to understand kmp, but none of them have given such clarity like u did. Thank you so much 😊. It's a wonder how just a change of few words can make a huge difference in understanding.
Students are benifiting from your videos years after years... Dill se Bohot bada Thank you aapko Bari sir.. Absolute legend 🙏🏻
HUGE RESPECT TO THIS LIVING Legend!!!
It's December 2024 & Bro is still ----> THE GOAT 🐐
Man , I used to watch ur videos during my college days . its been 5 years that i graduated still I learn from your videos. Where is he now , no new videos at all these days
KMP starts at 7:40. You're welcome.
Of course sir, but when just one hour is left for the exam, we need your algorithm faster!! :)
AJ you are right bro , jo pura saal nahi kiya wo end me youtube se sikhte he aapn log
Aditya Ravichandran I
thanks bro
Before 7:40.... There is Naive string match algorithm...
No one can teach better than You sir. I convey my all respect to you. Desire to meet you personally and just want to bow before you to pay my respect.
I can't say how much thankful I am. I have read this from book 4 times and still didn't understand a bit, but after watching your video only once fully understand KMP. Thank you so much Abdul sir.
Teachers are God and you are one of them...THANKYOU SO SO SO MUCH SIR. Today, our teacher taught the algo but in a complex way, and said that it will take 2-3 hrs honestly to understand but you saved my time.
As always my professor out here dropping gems on us humble students. Much love. We appreciate you
Unmatchable Explanation in UA-cam. You're a legend Sir. Thank You.
Used to watch your videos in my second year, watching again for revision in my final year preparing for placements! ( currently holding two offers from big tech companies)Thanks sir.
hello bhaiyan , i am in 3rd year what to do for placements?
Thank you sir
If I passed my exam tomorrow, you will be one of the reasons
بارك الله فيك
ربنا ييسر ان شاء الله
passed ?
@@skilfuldude7312
Yeah and now I'm in the last year
Thanks to God
الحمدلله
Wish me luck :D
Better than my professor's explanation, keep it up!
wish all these great tutorials were available when I was doing my graduation.
You are awesome. None of the people in my university was able to simplify this algorithm for me.
Thank you soo much sir for the help i was stuck on this algo for the entire day trying to watch different videos to get a proper explaination and then your video poped up and changed everything :)
From Vietnam with love :3 Computer Science students will always be thankful to you
This is the best explanation I have ever seen. I have searched for several videos, most of them just focus on implementing without much reasoning. However, after watching this video, I fully understood the principle behind KMP and implemented the algorithm by myself. Thank you very much.
I must say that u are an amazing teacher. In most of the videos, people often suggest tricks, but you explain that trick technically which sounds much more professional. Your videos are great.
Please upload illustration of Red-Black Tree.
The best tutorial on KMP. some unpeople taking money for unteaching at unacademy. And this guy is teaching and taking unmoney.
We are very grateful to you that we got such a important person in our life....
I've been watching your video since the dawn of my CS study!!! Thank you!!!!
hello king you dropped this 👑
I am a beginner and it was beautifully explained. The only KMP video I understood.
Thanks a lot sir!!!
Standing ovation. I'm a total noob when it comes to algorithms, and I can now say that I fully understand this absolute monster. Thank you.
you just called him absolute monster
@@ShubhamSharma-oq4hr In case you are not being sarcastic, he was referring to the algorithm.
@@saumyakhati5612 yep i did misunderstood him.. thanks
Dozens of videos trying to understand how the pattern works, found your video and understood in 2 minutes, tysm
Mr Bari, you're truly a gem. None of the videos online could explain these concepts as clearly as you. Really appreciate what you are doing!
Funny how my lecturer took 5 hours to teach this topic, and I actually understood during first 30 mins, then he confused me after an hour, I understood again, then he confused me again and pattern repeated, after 5 hours I questioned everything I learnt lol. And this guy did it. the right way
atleast he took 5 hours trying, ours just mentioned it, and then added some tasks about it on our assignment
Don't ignore this video because of 19 mins duration, You can set the speed to X1.25 and listen. Each and every input from this legend is just amazing
Thank you sir. Happy learning😀
You keep students interest in topic through out the video, thanks for your efforts🚀✔🤘
I've been roaming around tons of yt channels but I found the easiest and most understandable explanation here.
Thank you so much sir! The book I am using has an explanation that I cannot grasp so easily but your explanation is crystal clear.
TRUE :)
Dude I love the video so much. When you found that last match it gave me a big smile. This algorithm is cool! You do such a great job explaining the concept. Thank you for the video.
Very professional explanation. No matter what, professors are professors. They know how to explain clearly :) Thank you for your time. Appreciate it.
9:36lecture start
Really appreciate how you explain with examples. Makes it really easy to understand even difficult algorithms. Thanks.
Great ! You are a great Teacher. Thanks for saving my Design and analysis of Algorithm Paper. God in disguise.
#Respect
this guy is legend... i now understand how KMP works. Thank you so much.
11:29 - the moment you realise you made a mistake but still decide to ignore thinking " chal yaar chod ... Kya fark paindaa hai"
last b should get 3 ,right?
@@replicatoria yes
@@replicatoria yep
@@pratimasingh1258 yes i was also thinking the same thanks for helping
@@replicatoria, you're right: a a b c a d a a b e = 0 1 0 0 1 0 1 2 3 0
I watched too many videos on Knuth Algo and your explanation is by far the best I have seen. Thank you very much! you a life savior.
in P3 for a a b repeating for 2nd time it should have 1 2 3 but you gave 1 2 0 sir..please verify it!!
awesome content ❤️❤️
I have the same doubt!
You are the epitome of awesomeness, when it comes to lucid explanations !
Sir at 11:55 at p3 I think there's a mistake rest is great ❤️
Its an really Nice Explanation. its so much better than reading at geeks for geeks. Sir is making so much worth to learn at UA-cam. 🙏
Sir, you should definitely create a bootcamp course for technical interviews, you ll save so many lives. Thank you for all your efforts sir !
Your explanations are very clear and easy to understand
I was so confused, turns out it is pretty easy! Thank you!!
Sir you are legend your teaching method is amazing alot of love from peshawar
those who have exams in coming hours start at 7.40
Again - Abdul - thank you for another great video. You make things so easy to understand without fluff.
Hi, great video. I have a doubt. For pattern P3, why aab is not 1,2,3 because it's getting repeated?
same confusion
THat seems to me as a mistake
huge respect to u sir.......every department will have one professor like this.....unfortunately i landed up here for having the worst ada teacher
A very lucid explanation to a complex algorithm. Thank you very much sir.
Was still lost after a blog and 2 other videos, only your video explained this so clearly! Thank you!!
KMP starts at 7:42
the basic intuition of kmp algo is when we are matching pattern in a text string whenever we encounter a suffix same as a prefix , and the current string does not match after a string, and we see that this string from suffix might not match furthermore but hey, we also have a prefix which is same as the recent suffix , we can start matching the text right the unmatched index of text string and in the pattern we can start matching from the next of prefix since it is well known that it is in text string
so we can start matching from the both next index to the end if matched,we will return the index of matched string
for example text = a b c x a b c d a b x a b c d a b c d a b c y
pattern= a b c d a b c y
at an instant when matching
text a b c x a b c d a b x a b c d a b c |d| a b c y
pattern a b c d a b c |y|
y and d is not matching
so rather than looking from the start of text string we will look from d again
and in the pattern string before 'y' we will check if there is a suffix - prefix match
and that there is |a b c| d |a b c| y
so we can start from here
suffix's
previous
value (prefix)(whenever same only)
a b c x a b c d a b x a b c d a b c d a b c y
|a b c| d |a b c| y
we are taking the benefit of repitition as the later value does not match so there
is a chance that in the previous values there a suffix might match the prefix
and we can start from there
and we can find the prefix- suffix match with pi array which will we construct using the code
vectorlongestprefix_suffix_match(string s){
int n=s.size();
vectorpi;
for(int i=0;i
IN P3 aab and aab are same so, the next aab must be 123, time 11:55
Yes..same doubt ..it must be 123..🤔
for some time i thought i was in classroom, Thank you so much sir.....
p3 last b should be 3
Tq so much sir i am search many videos but no one is explain in good
Kmp starts at 7:39 ... Thank me later 😁
OP explanation.. now i understand why my whole college watches you sir
Fabulous! Excellent explanation. Thank you sir!
I am doing it in 2024 .Still the best one out there
i really wish if you were a professor in my NIT college. :)
bro u lucky to be in NIT, how are the prof there? Here its too bad, even though ours is a Govt univ :(
He was just kidding
Thanks
11:37 in p3:last b should be 3 why 0?
Yes
HAIN??? KYA BAAT KAR RA HAI??
I use to bunk classes bcz I believe in this man,every complex concept is easy here
sir we absolutely love your videos, if you could pls include the algorithms for all these concepts too!
sir, is legend no doubt but our university faculty taking tym due to making all of us understandable, respect to all faculty.,
7:40 for those who want to go straight to KMP explanation without that naive one
The only video I found helpful on kmp for super clear understanding thank you sir
You are awesome! Can you do video of Amortized analysis and loop invariant next time? I feel like these 2 topics are hard to understand
Damn this the clearest explanation i’ve seen so far, not even chatGPT can explain it this clearly
Abdul sir aap Google kyu nhi try karte?
Oh Sorry
Google aap Abdul sir kyu nhi try karte?
fuck off
@@techwithwhiteboard3483 Dude, what the hell? Chill out. He was making a joke here.
Best explainations of KMP on UA-cam💯💯
Algorithm ✖
El-gaur-dum ✔
bro is my saviour when it comes to mid or final exam. thank you mr bari