Longest Palindromic Substring O(N) Manacher's Algorithm

Sdílet
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

Komentáře • 467

  • @ritikparida3104
    @ritikparida3104 Před 4 lety +52

    GFG took 4 articles to explain this. This man nailed it in only 15 mins .

  • @AP-eh6gr
    @AP-eh6gr Před 8 lety +198

    epic explanation man. watching it twice did it for me. i can imagine the patience it took you to make these 176 slides

    • @IDeserve
      @IDeserve  Před 8 lety +27

      +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

    • @bryanbocao4906
      @bryanbocao4906 Před 5 lety +1

      @@IDeserve Thanks for making these slides and video! How long did it take you to make these slides?

    • @rahulchaubey8988
      @rahulchaubey8988 Před 4 lety +1

      Bro mai ni samajh paya

  • @ntesla5
    @ntesla5 Před 4 měsíci +6

    8 years old but still better explanation compared to newer videos explaining the same

  • @fredesch3158
    @fredesch3158 Před rokem +4

    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

  • @jony7779
    @jony7779 Před 5 lety +82

    I have honestly never encountered an O(n) algorithm that is tricker than this. You give the best explanation though, thank you.

    • @IDeserve
      @IDeserve  Před 5 lety +3

      Thank you so much for your kind words Jon!

    • @Adityarm.08
      @Adityarm.08 Před 4 lety +3

      Ukkonen's suffix tree construction would do if you want to see that. 😄

    • @mohammadanasmudassir9443
      @mohammadanasmudassir9443 Před 4 lety +1

      @@Adityarm.08 That algorithm is an atrocity. I was only able to code 80% of it and cannot understand the online solutions :/

    • @Adityarm.08
      @Adityarm.08 Před 4 lety +1

      @@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.

    • @bittupaul9455
      @bittupaul9455 Před 5 měsíci

      Ukkonen is a nightmare

  • @expansivegymnast1020
    @expansivegymnast1020 Před 2 lety +8

    Took me over a week to finally understand all of this. This is one of the hardest algorithms out there. Outstanding work!

  • @subhedarsanchay
    @subhedarsanchay Před 4 lety +46

    I don’t give up often but when I do it’s Manacher’s algorithm 😂

  • @fizzburn
    @fizzburn Před 4 lety +12

    IDeserve, you definitely deserve a standing ovation! I can't wait to checkout your other videos. Thank you!

  • @shefalichaudhary8621
    @shefalichaudhary8621 Před 8 lety +15

    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.

    • @IDeserve
      @IDeserve  Před 7 lety +1

      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.

  • @DanielOchoa23
    @DanielOchoa23 Před 2 lety +4

    Dude. This was hands down the BEST explanation for the algorithm I've ever heard. Thank you so much!

  • @ziyanwang6937
    @ziyanwang6937 Před 4 lety +11

    Best explanation on Manacher's alg I've ever seen! Really appreciate you for sharing this!

  • @eceserin
    @eceserin Před rokem +2

    Save time: I watched all of Manacher`s algorithms on youtube, this is the best one.

  • @tonystarc9567
    @tonystarc9567 Před 3 lety +13

    This was pretty difficult to understand but your efforts are commendable. Thank you

  • @ZeeshanSagheerAnsari
    @ZeeshanSagheerAnsari Před 2 lety +6

    Epic video on Manacher's algorithm . Very clear and precise explaination. Appreciate the effort you have put to create this content.

  • @AbhrajyotiKundu00
    @AbhrajyotiKundu00 Před 3 lety +2

    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 :)

  • @doug8171
    @doug8171 Před 6 lety +1

    So far, the best video for understanding it, rather than just explaining the process

    • @IDeserve
      @IDeserve  Před 6 lety

      Thank you so much Doug for your kind words :)

  • @BryanRink
    @BryanRink Před 3 lety +1

    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!

  • @imranyusubov4187
    @imranyusubov4187 Před 2 lety +2

    great explanation, finally understood the enigma of Manacher's algorithm. keep doing the cool work

  • @Kp96321
    @Kp96321 Před 3 lety +4

    Thanks, the best walk-through of the algorithm I've seen so far!!
    Why'd you guys stop making videos?

  • @shubhampareek2378
    @shubhampareek2378 Před 4 lety +3

    I don't think this could've been explained any better than this. Appreciate your efforts, sir.
    Keep up the good work.
    Thanks

  • @tusharvyavahare9229
    @tusharvyavahare9229 Před rokem +1

    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!

  • @emilianobustamante5013
    @emilianobustamante5013 Před 3 měsíci

    been trying to understand it for hours and I understood it perfectly in a 15 minute video. thank you so much!

  • @englishlnowledge486
    @englishlnowledge486 Před rokem +2

    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.

    • @IDeserve
      @IDeserve  Před rokem

      Thank You! 😊

    • @jabedhasan21
      @jabedhasan21 Před 9 měsíci

      I agree with you. When I started thinking about revising this algorithm, I came here.

  • @prabhavagrawal1712
    @prabhavagrawal1712 Před rokem +2

    Seriously, the best explaination I could get on whole youtube.
    Thanks :)

  • @shivanshshekhar
    @shivanshshekhar Před 13 dny

    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.

  • @madhivarman508
    @madhivarman508 Před 4 lety +2

    went through a lot of videos to understand this algorithm. But this one is the best so far.

  • @IDeserve
    @IDeserve  Před 8 lety +7

    +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.

    • @MrMalapatiravi
      @MrMalapatiravi Před 6 lety

      I would recommend most of the difficult and medium level questions from leetcode and their principles.

  • @asifmujtaba334
    @asifmujtaba334 Před 7 lety +2

    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.

    • @IDeserve
      @IDeserve  Před 7 lety

      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.

  • @kumarravi09
    @kumarravi09 Před 5 lety +2

    Great Explanation. Probably the best i have come across so far.

  • @KshitijBhatnagar
    @KshitijBhatnagar Před 3 lety +2

    Nice explanation... I watch the video a couple of times, but I understood it perfectly. Thanks man for sharing this.

    • @IDeserve
      @IDeserve  Před 3 lety +1

      Thanks Kshitij for kind words!

  • @priyanshuranjan1038
    @priyanshuranjan1038 Před 4 lety +3

    gone through many videos of manacher's algorithm.But this is the one where my searching stopped.Thank you for this awesome content

  • @winstondu4180
    @winstondu4180 Před 8 lety +12

    Hey, I love these videos. These are definitely helping me as I prepare for the interview for my internships.

    • @IDeserve
      @IDeserve  Před 8 lety +1

      +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.

  • @arnabchatterjee7651
    @arnabchatterjee7651 Před 3 lety +1

    wow man the amount of effort you took to explain in this video is incredible, take a bow sir

  • @sudiptapaul9855
    @sudiptapaul9855 Před rokem +3

    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.

  • @ankishbansal420
    @ankishbansal420 Před 4 lety +2

    Thanks man. I struggle for whole day to understand it, but you made it so easy. Really appreciate your effort.

  • @glorykim9171
    @glorykim9171 Před 5 lety +2

    This was so helpful thank you! I appreciate all of the patience it took you to iterate through this.

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Glory!

  • @harmeetsingh9571
    @harmeetsingh9571 Před 5 lety +2

    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!

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Harmeet!

  • @casinarro
    @casinarro Před 9 měsíci

    the best and most clear explanation of manacher on YT

  • @dariopavlovic8640
    @dariopavlovic8640 Před 5 lety +2

    I looked at some other explanations and yours is by far the best. Thank you so much!

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Dario!

  • @chinmaiveera7586
    @chinmaiveera7586 Před 3 lety +1

    I've seen many top youtuber's tried to explain but only you succeeded.

  • @rbt-0007
    @rbt-0007 Před 2 lety +2

    Bro you saved my day with your wonderful explanation, definitely subscribing!

  • @owenxu9173
    @owenxu9173 Před 8 lety +2

    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!

    • @IDeserve
      @IDeserve  Před 8 lety

      +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.

  • @AshwaniSharma-of2nq
    @AshwaniSharma-of2nq Před 5 lety +2

    I have watched other videos also. But your one made me understand it completely. Kudos to you buddy. Keep going.

  • @savanmatariya7494
    @savanmatariya7494 Před 3 lety +2

    Awesome explanation, loved your work and effort. You actually deserve it!!

  • @jamesqiu6715
    @jamesqiu6715 Před 7 lety +1

    I watch it again after almost 2 years, I have to say this video is by far the BEST algorithm on youtube ever!!!

  • @siteshp
    @siteshp Před 5 lety +1

    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.

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Sitesh!

  • @elvis0305
    @elvis0305 Před 4 lety +2

    This is awesome explanation , the visualisation helps a lot with understanding the idea behind the algorithm! Great job guys.

  • @user-bx5sy9vr6c
    @user-bx5sy9vr6c Před 5 lety +2

    Best Manacher's Algorithm explanation I have ever seen.

  • @akilageetha5773
    @akilageetha5773 Před 3 lety

    Extra ordinary explanation of the mental modal behind Manacher's algorithm. The best of the best.

  • @hoelefouk
    @hoelefouk Před 4 lety +4

    You are so good that you could have come up with this algorithm on your own. Thanks!

    • @IDeserve
      @IDeserve  Před 4 lety +1

      Thanks Nisheet for your kind words!

  • @puneettanwar2325
    @puneettanwar2325 Před 3 lety +3

    very clear explanation. Great work. Thank you!

  • @vijaykumarlokhande1607
    @vijaykumarlokhande1607 Před 2 lety +1

    I had decided to skip manachers algo for upcoming placement! Now I have it in my toolkit! thanks man
    gr8 job!

    • @IDeserve
      @IDeserve  Před 2 lety

      All the best for the placements!

  • @iloveans
    @iloveans Před 4 lety +2

    Thanks for the extremely clear explanation! Tracing the code made it even better :)

  • @aayushisingh3280
    @aayushisingh3280 Před 2 lety +1

    The "thinking pause" did it for me. I am floored

  • @danielwen1227
    @danielwen1227 Před 5 lety +3

    Thank you a lot for your explanation! It is the video that is worthy to spend 24 minutes on it!

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Daniel!

  • @tombrady7390
    @tombrady7390 Před 3 lety

    after rewinding and pausing crying finally it just clicked dont give up on this it is staple for palindromic problems

  • @aceorochi
    @aceorochi Před 8 lety +2

    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!

    • @IDeserve
      @IDeserve  Před 8 lety

      +吴佩 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

  • @AshuAshuAshuAshu
    @AshuAshuAshuAshu Před 3 lety +1

    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.

  • @prudvinathmalepati3322
    @prudvinathmalepati3322 Před 6 lety +2

    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.

    • @IDeserve
      @IDeserve  Před 6 lety

      Thank you so much for your kind words Prudvinath!

  • @BK-rs1we
    @BK-rs1we Před 5 lety +10

    Great explanation. I feel if there were indices on P[ ] then it would be easier to follow when you went through the code.

  • @shaivalchokshi3424
    @shaivalchokshi3424 Před 7 lety +2

    Wonderful explanation, concise and apt :)
    Helped me understand it till the depth. Great work, kudos !

    • @IDeserve
      @IDeserve  Před 7 lety +1

      Thanks Shaival for your kind words :)

  • @shubhamchandra9258
    @shubhamchandra9258 Před rokem +2

    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.

  • @ppantg1
    @ppantg1 Před 5 lety

    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.

  • @AnkurDwivedi75
    @AnkurDwivedi75 Před 3 lety +2

    I have been trying to understand this algorithm, but failing .. thanks ..just a single watch here on ur channel, I have understood it completely

  • @shreyas6589
    @shreyas6589 Před 5 lety +2

    Brilliant explanation! The visual explanation was indeed very helpful! Thanks a ton!

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Shreyas!

  • @nightking6719
    @nightking6719 Před 4 lety +1

    best explanation found till now !!

  • @jacobhubbard7337
    @jacobhubbard7337 Před 8 lety +5

    Great work. Best explanation I've seen yet.

    • @IDeserve
      @IDeserve  Před 8 lety

      +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!

  • @anirudhreddybasani3555
    @anirudhreddybasani3555 Před 4 lety +1

    These repetitive comments on how brilliant this video was tells us about this video...from my side I really appreciate your efforts :)

  • @mihirkumarsrivastava1895
    @mihirkumarsrivastava1895 Před 3 lety +2

    the best explanation of manacher's algorithm, great buddy it really hepled me alot

  • @kunalpareek8321
    @kunalpareek8321 Před 2 lety +2

    Excellent and very detailed presentation of a very complex topic. A lot of work must have gone into the graphics.

  • @tejavemparala4377
    @tejavemparala4377 Před 3 lety +1

    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"

  • @Lunatiq.
    @Lunatiq. Před 5 lety +1

    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.

  • @tanmoydatta5724
    @tanmoydatta5724 Před 5 lety +2

    Awesome work man. Best explanation ever i have found on online.

    • @IDeserve
      @IDeserve  Před 5 lety

      Thank you so much for your kind words Tanmoy 😀

  • @Joyddep
    @Joyddep Před 5 lety +2

    Appreciate the effort. One of the best coding channels!

  • @andreadedomenico1479
    @andreadedomenico1479 Před 8 lety +6

    Good video, great explanation.
    Good job sir.

  • @ayushkushwaha262
    @ayushkushwaha262 Před 5 lety +2

    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.

    • @IDeserve
      @IDeserve  Před 5 lety

      Thanks Ayush for your kind words!

  • @DAaaMan64
    @DAaaMan64 Před 6 lety

    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?

  • @forceinfinity
    @forceinfinity Před 7 lety +3

    Excellent presentation. Hugely helpful in understanding the algorithm

    • @IDeserve
      @IDeserve  Před 7 lety +1

      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.

  • @MithleshKumar-iz1dz
    @MithleshKumar-iz1dz Před 5 lety +1

    Thank you !! Keep uploading great videos please.

  • @vivekanandkhyade
    @vivekanandkhyade Před 7 lety

    which animation software are you using?

  • @apoorvamittal4112
    @apoorvamittal4112 Před 4 lety

    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}

  • @kekaiskeka
    @kekaiskeka Před 5 lety +1

    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.

  • @yevgeniygrechka6431
    @yevgeniygrechka6431 Před rokem +1

    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.

  • @akshaykumarmalathkar2968

    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])' ?

  • @yuvarajyuvi2644
    @yuvarajyuvi2644 Před 5 lety +2

    Good explanation man...Try to explain all the important algorithms like this...

  • @prooAG
    @prooAG Před 2 lety +1

    what a beautiful explanation man!

  • @aatishchauhan8957
    @aatishchauhan8957 Před 4 lety +2

    A really good explanation. Thanks for your hardwork man.

    • @IDeserve
      @IDeserve  Před 4 lety

      Thanks Aatish!

    • @aatishchauhan8957
      @aatishchauhan8957 Před 4 lety

      @@IDeserve Is the video on explaining the time complexity of this algorithm uploaded ?

  • @prashantgupta8801
    @prashantgupta8801 Před 3 lety +2

    Awesome explanation. Thank you very much. Appreciate your efforts.

  • @LetsBeHuman
    @LetsBeHuman Před 5 lety +3

    5:14 - superb questions. you explain it , as if you don't know the solution beforehand whcih is cool.

  • @gameelevator1579
    @gameelevator1579 Před 2 lety +4

    Sir you nailed it . Thank you so much for awesome explanation 🙂

    • @IDeserve
      @IDeserve  Před 2 lety

      Thank you for your kind words! 😊

  • @IDeserve
    @IDeserve  Před 7 lety +2

    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.

  • @sayedsohel6913
    @sayedsohel6913 Před 6 lety +1

    you have done a good job debugging the code. keep it up bro.

    • @IDeserve
      @IDeserve  Před 6 lety

      Thank you so much Sayed for your kind words :)

  • @ipshamohanty6682
    @ipshamohanty6682 Před 6 lety +2

    Great job!!...Looking forward for more videos

    • @IDeserve
      @IDeserve  Před 6 lety

      Thanks for your kind words Ipsha!

  • @debashishdeka7698
    @debashishdeka7698 Před 7 lety

    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 ?

  • @explorersagnik8522
    @explorersagnik8522 Před 3 lety

    i tried understanding this for 3 days finally understood here thank you so much

  • @NishArcturus
    @NishArcturus Před 4 lety +13

    23:48 minutes used for the best man !! Thank you so much for this finally got this😂

  • @elliotgoldberg147
    @elliotgoldberg147 Před 5 lety

    what if the input string could be any char, and not just letters? Could you use this algorithm if that were the case?

  • @aries3690
    @aries3690 Před 2 lety +2

    Absolutely amazing explanation, thank you so much!

  • @adarshjadhav8877
    @adarshjadhav8877 Před 4 lety +1

    excellent explanation bro. your patience must be paid off. keep up good work...

  • @ganeshkumar269
    @ganeshkumar269 Před 4 lety +3

    youtube recommended this, glad it did