Longest Palindromic Substring O(N) Manacher's Algorithm
Vložit
- čas přidán 2. 09. 2015
- Problem:-
Given a string s, find out the longest palindromic substring in O(N)
using Manacher's algorithm.
This video explains the Manacher's Algorithm for finding out the longest Palindromic Substring.
Useful References:-
en.wikipedia.org/wiki/Longest...
articles.leetcode.com/2011/11/...
tarokuriyama.com/projects/pali...
Website: www.ideserve.co.in
Facebook: / ideserve.co.in
GFG took 4 articles to explain this. This man nailed it in only 15 mins .
Thanks Ritik!
This is really true.... :)
23 min lie h bhai acche se dekh
epic explanation man. watching it twice did it for me. i can imagine the patience it took you to make these 176 slides
+ashish paralkar Thanks a lot for your kind feedback and you are right in that it took some patience to create this video. Ashish, we would really appreciate if you can spread the word about IDeserve(www.ideserve.co.in) in your peer circles.
Cheers,
Team IDeserve
@@IDeserve Thanks for making these slides and video! How long did it take you to make these slides?
Bro mai ni samajh paya
8 years old but still better explanation compared to newer videos explaining the same
couldn't get anything from the explanation alone, but as soon as you started showing the code, everything you explained started to click into place, very much well done
I have honestly never encountered an O(n) algorithm that is tricker than this. You give the best explanation though, thank you.
Thank you so much for your kind words Jon!
Ukkonen's suffix tree construction would do if you want to see that. 😄
@@Adityarm.08 That algorithm is an atrocity. I was only able to code 80% of it and cannot understand the online solutions :/
@@mohammadanasmudassir9443 you need test cases, very thorough ones. I was also stuck at that point where you are - I think. that 1 famous Stack overflow post has a full chain of comments all of which taken together paint the full picture.
Ukkonen is a nightmare
Took me over a week to finally understand all of this. This is one of the hardest algorithms out there. Outstanding work!
Thanks 😊
thank you ! Great job !@@IDeserve
I don’t give up often but when I do it’s Manacher’s algorithm 😂
🙈
+1 😒
IDeserve, you definitely deserve a standing ovation! I can't wait to checkout your other videos. Thank you!
Thanks bro!
I was struggling the whole day to understand this topic and now finally I saw this video. I feel relieved now , very well explained along with the code.
Thanks a lot for your words Shefali :)
We are striving hard to make understanding algorithms easier.
We would really appreciate if you could spread the word about IDeserve in your college and to your colleagues.
Also please check out our website at: www.ideserve.co.in
It has features like Algorithm Visualization, Learn Together and many more coming soon.
Please check it out and leave us a comment there!
Thanks,
-Team IDeserve.
Dude. This was hands down the BEST explanation for the algorithm I've ever heard. Thank you so much!
Thanks Daniel!
Best explanation on Manacher's alg I've ever seen! Really appreciate you for sharing this!
Thanks Ziyan!
Save time: I watched all of Manacher`s algorithms on youtube, this is the best one.
Thanks Ece!
This was pretty difficult to understand but your efforts are commendable. Thank you
Epic video on Manacher's algorithm . Very clear and precise explaination. Appreciate the effort you have put to create this content.
Thanks Zeeshan!
After spending 1.5 days on this problem, and reading that 4 pg GFG article, thank God I found the link of this video in the discuss section of GFG. This is the Best Explanation till now of Manacher's Algo. Thank You @IDeserve for this wonderful explanation :)
Thanks Abhrajyoti!
So far, the best video for understanding it, rather than just explaining the process
Thank you so much Doug for your kind words :)
I didn't think I fully got it when I finished the video, but then I tried to code it without referencing back here and it worked. Thanks!
great explanation, finally understood the enigma of Manacher's algorithm. keep doing the cool work
Thanks Imran!
Thanks, the best walk-through of the algorithm I've seen so far!!
Why'd you guys stop making videos?
I don't think this could've been explained any better than this. Appreciate your efforts, sir.
Keep up the good work.
Thanks
Thanks Shubham!
I've watched around 5 videos and read 6 articles on this topic, and this video is the best and lucid explanation of the topic. Thankyou!
Thanks Tushar! 😊
been trying to understand it for hours and I understood it perfectly in a 15 minute video. thank you so much!
This is best lecture, I have found on CZcams to understand the Manacher's Algorithm. The way you teach It reflect how much deep understanding You have. Thank You for this wonderful explanation, It saves lot of time and effort.
Thank You! 😊
I agree with you. When I started thinking about revising this algorithm, I came here.
Seriously, the best explaination I could get on whole youtube.
Thanks :)
Thanks Prabhav!
Was really struggling to the point I was gonna skip this algorithm. You helped me understand it, thank you so much for your help! This is way better than some videos with more views.
went through a lot of videos to understand this algorithm. But this one is the best so far.
+Andrea De Domenico
Thanks a lot for appreciating! There are many more videos coming soon. Also, you can let us know any interview topic or question of your choice that you would like to see on IDeserve.
Thanks,
-Team IDeserve.
I would recommend most of the difficult and medium level questions from leetcode and their principles.
I was struggling yesterday night switching from video to video, at first, I didn't understand your explanation, but now it's clear. Thank you very much.
Thanks for your kind words :)
We would really appreciate if you could spread the word about IDeserve in your college and to your colleagues.
Also please check out our website at: www.ideserve.co.in
It has features like Algorithm Visualization, Learn Together and many more coming soon.
Please check it out and leave us a comment there!
Thanks,
-Team IDeserve.
Great Explanation. Probably the best i have come across so far.
Nice explanation... I watch the video a couple of times, but I understood it perfectly. Thanks man for sharing this.
Thanks Kshitij for kind words!
gone through many videos of manacher's algorithm.But this is the one where my searching stopped.Thank you for this awesome content
Thanks Priyanshu!
Hey, I love these videos. These are definitely helping me as I prepare for the interview for my internships.
+Wenhao Du
Thanks a lot for your words! It is very encouraging to hear such comments!
Also please check out our website at: www.ideserve.co.in
It has features like algorithm visualizations, learn together and many more coming soon.
Please check it out and leave us a comment there!
Thanks,
-Team IDeserve.
wow man the amount of effort you took to explain in this video is incredible, take a bow sir
Thanks Arnab ☺️
Your explanation is Amazzing, simple and easy to understand, probably the best for such a complex algorithm. please keep it up. Thanks for this video and thanks to Mr Manacher as well for this algorithm.
Thanks Sudipta!
Thanks man. I struggle for whole day to understand it, but you made it so easy. Really appreciate your effort.
Thanks Ankish!
This was so helpful thank you! I appreciate all of the patience it took you to iterate through this.
Thank you so much for your kind words Glory!
Really great explanation. Watched couple of videos for this algo and yours is the best one. Very precise and your code walkthrough was awesome which made it complete. Appreciate your efforts in making those slides.
Your videos would be mine first goto from now.
Happy to share!
Thank you so much for your kind words Harmeet!
the best and most clear explanation of manacher on YT
I looked at some other explanations and yours is by far the best. Thank you so much!
Thank you so much for your kind words Dario!
I've seen many top youtuber's tried to explain but only you succeeded.
Bro you saved my day with your wonderful explanation, definitely subscribing!
Great video. I have read some blogs about this Algorithm and still not understand.
Withi your explaination, it become clear to me! Thanks very much!
+Owen Xu
Thanks a lot for your words! We are striving hard to make understanding algorithms easier.
We would really appreciate if you could spread the word about IDeserve in your college and to your colleagues.
Also please check out our website at: www.ideserve.co.in
It has features like algorithm visualizations, learn together and many more coming soon.
Please check it out and leave us a comment there!
Thanks,
-Team IDeserve.
I have watched other videos also. But your one made me understand it completely. Kudos to you buddy. Keep going.
Thanks Ashwani!
Awesome explanation, loved your work and effort. You actually deserve it!!
Thanks Savan!
I watch it again after almost 2 years, I have to say this video is by far the BEST algorithm on youtube ever!!!
Hey James, welcome back!
What an explanation sir. Keep it up. The best thing was you dry ran the code also with values, i didn't require even a pen and a copy to understand.
Thank you so much for your kind words Sitesh!
This is awesome explanation , the visualisation helps a lot with understanding the idea behind the algorithm! Great job guys.
Thanks Li!
Best Manacher's Algorithm explanation I have ever seen.
Thanks!
Extra ordinary explanation of the mental modal behind Manacher's algorithm. The best of the best.
Thanks Akila!
You are so good that you could have come up with this algorithm on your own. Thanks!
Thanks Nisheet for your kind words!
very clear explanation. Great work. Thank you!
Thanks Puneet!
I had decided to skip manachers algo for upcoming placement! Now I have it in my toolkit! thanks man
gr8 job!
All the best for the placements!
Thanks for the extremely clear explanation! Tracing the code made it even better :)
You are welcome Tyler!
The "thinking pause" did it for me. I am floored
Thank you a lot for your explanation! It is the video that is worthy to spend 24 minutes on it!
Thank you so much for your kind words Daniel!
after rewinding and pausing crying finally it just clicked dont give up on this it is staple for palindromic problems
Awesome!
This is the most intuitive explanation, even people dull like me can understand the point of this algorithm now!
Nice job, looking forward more of your publish!
+吴佩 It's really encouraging to hear comments like these. Yes we are uploading new videos on regular basis. So, stay tuned :-).
Please feel free to let us know if you would like us to upload a video for a particular topic/algorithm. We will really appreciate if you can spread the word about IDeserve(www.ideserve.co.in) in your peer circles.
Thank you,
Team IDeserve
thank you so much, sir, you are great ......
I found a lot of videos on manchester's algo but all that was waste material.
you are a gem in terms of algorithms.
Thanks Ashutosh!
Thanks man!! You are a good teacher. I got the central idea after watching your video once. Now, I can try coding it on my own.
Thank you so much for your kind words Prudvinath!
Great explanation. I feel if there were indices on P[ ] then it would be easier to follow when you went through the code.
Wonderful explanation, concise and apt :)
Helped me understand it till the depth. Great work, kudos !
Thanks Shaival for your kind words :)
Superb explanation. I was able to follow through without any trouble. Hats off. Would be great if you could explain KMP algo and Z algo as well. Thanks for this one.
Thanks Shubham!
It's actually quite a simple algorithm once we become familiar with the concept. Basically, copying over the mirrors expansion length if the index lies within the current right boundary means we don't calculate the expand length from scratch at every index - we use the symmetric property of palindromes to give us a O(n) time.
I have been trying to understand this algorithm, but failing .. thanks ..just a single watch here on ur channel, I have understood it completely
Brilliant explanation! The visual explanation was indeed very helpful! Thanks a ton!
Thank you so much for your kind words Shreyas!
best explanation found till now !!
Great work. Best explanation I've seen yet.
+Jacob Hubbard Thanks a lot for your words! It is very encouraging to hear such comments! We are striving hard to make understanding algorithms easier.
Please check out our website at: www.ideserve.co.in. It has features like algorithm visualizations, learning together and many more coming soon!
These repetitive comments on how brilliant this video was tells us about this video...from my side I really appreciate your efforts :)
Thanks Anirudh!
the best explanation of manacher's algorithm, great buddy it really hepled me alot
Thanks Mihir!
Excellent and very detailed presentation of a very complex topic. A lot of work must have gone into the graphics.
Thanks Kunal!
Great Explanation, no other video on YT does the explanation this way, I was looking for video like this. Eg: "what is making the brute force algorithm to run in O(n^2) and how it can be optimized"
Thanks Teja!
You can make it even faster if you'll check for "larger" palindrom, so when we've found the size 7 for example, at the start we check chars at that boundary.
And I really can't get why it's only 2 "passes" through the string, because if it's string of same char, it will check the same char multiple times, like n/2 times for the first and n - i / 2 for the rest.
Awesome work man. Best explanation ever i have found on online.
Thank you so much for your kind words Tanmoy 😀
Appreciate the effort. One of the best coding channels!
Thanks Joydeep!
Good video, great explanation.
Good job sir.
Spent whole day to understand this from other resources result ==> ~NULL
Spent time here understood in 2 go !!
Recommended!!
Thank you for the best explanation.
Thanks Ayush for your kind words!
If we store a max, in this case 7, why can't we exit early when the center of the palindrome at i cannot possibly be greater than 7? A palindrome at i of length 7 or more would hit end of string. Am I wrong or it perhaps not worth checking for this case?
Excellent presentation. Hugely helpful in understanding the algorithm
Thanks forceinfinity for your kind words :)
We are striving hard to make understanding algorithms easier.
We would really appreciate if you could spread the word about IDeserve in your college and to your colleagues.
Also please check out our website at: www.ideserve.co.in
It has features like Algorithm Visualization, Learn Together and many more coming soon.
Please check it out and leave us a comment there!
Thanks,
-Team IDeserve.
Thank you !! Keep uploading great videos please.
which animation software are you using?
help me with updating centre how can we judge by just comparing the R value, it depends on length of palindrome which does not depend only on R but also on C
focussing on last if condtition:
if( i+P[i] ) > R)
{
C = i;
R = i+P[i];
}
shouldn't it be:
if(P[i] > R-C)
{so on}
Excellent explanation for a complex algorithm. Minor correction of logic:
If condition after 'while' loop is going to run every 'i' values that are greater than R.
Example: 'ABABABACDEFG' try this as an example and check C and R values would change for i > 15 and overwrite C and R values to lower values. This will result in a wrong output.
So, this 'if' condition should check for P[i] should be greater than P[R] to change C and R to new values.
Replace
if(i + P[i] > R)
with
if(P[i] > P[R])
Thank you for the great explanation.
This is an excellent video. Just one suggestion for future videos: in the example that you went over, we never had the case where we had to take R-i over P[mirr]. It would be good for the example to include this case.
If 'i' lies within boundaries we can directly copy mirror length to 'P[i]' but in the code why do we write 'min(R-i, P[mirr])' ?
Good explanation man...Try to explain all the important algorithms like this...
what a beautiful explanation man!
A really good explanation. Thanks for your hardwork man.
Thanks Aatish!
@@IDeserve Is the video on explaining the time complexity of this algorithm uploaded ?
Awesome explanation. Thank you very much. Appreciate your efforts.
Thanks Prashant!
5:14 - superb questions. you explain it , as if you don't know the solution beforehand whcih is cool.
Sir you nailed it . Thank you so much for awesome explanation 🙂
Thank you for your kind words! 😊
Dear Friends,
If you like our content and would like us to continue making great content for you, please spread the word about IDeserve.
A share/appreciation from you on social network would mean the world to us!
Also, do like our Facebook page: facebook.com/IDeserve.co.in :)
Thanks,
-Team IDeserve.
you have done a good job debugging the code. keep it up bro.
Thank you so much Sayed for your kind words :)
Great job!!...Looking forward for more videos
Thanks for your kind words Ipsha!
Hi great explanation, I think with the help of p[] array values we can answer any query (l,r) for the palindromic check. We just have to change the query to (l',r') (because of # elements) and then checking p[mid] value. right ?
i tried understanding this for 3 days finally understood here thank you so much
Thanks Sagnik!
23:48 minutes used for the best man !! Thank you so much for this finally got this😂
You are welcome!
what if the input string could be any char, and not just letters? Could you use this algorithm if that were the case?
Absolutely amazing explanation, thank you so much!
Thanks Aries!
excellent explanation bro. your patience must be paid off. keep up good work...
Thanks Adarsh!
youtube recommended this, glad it did
Thanks!