Longest Palindromic Substring Manacher's Algorithm

Sdílet
Vložit
  • čas přidán 29. 07. 2015
  • Given a string, find longest palindromic substring in this string in linear time.
    github.com/mission-peace/inte...
    github.com/mission-peace/inte...
    / tusharroy25

Komentáře • 216

  • @BRBallin1
    @BRBallin1 Před 5 lety +358

    Normally your videos are very clear but this wasn't one of them.

  • @joh1121
    @joh1121 Před 7 lety +17

    Thanks a lot! Your tutorial is the best of all. The four cases were so clear and concise. After many struggles with the other written tutorials, I was finally able to implement the method by looking at the cases provided by you!

  • @JacekKarwowski
    @JacekKarwowski Před 8 lety +46

    Why is the runtime complexity O(n)? Could you elaborate more on that topic?

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

      I think the confusion is mainly because of the ""expansion for every element". That's why it kinda looks like it's O(n²).
      I scratched my head the whole day and finally understood how it's O(n).
      If you try to manually run this code( medium.com/hackernoon/manachers-algorithm-explained-longest-palindromic-substring-22cb27a5e96f ) on paper with some examples, you will find out that once the palindrome is calculated up to 'r', no other element enters the "while loop" again. Because the 'mirror' has already calculated the palindrome for that element.
      It will enter the "while loop" again when either the element is after 'r' or when the element's mirror's palindrome exceeds 'r'.
      I know what I am saying might sound like gibberish but once you have tried to run this algorithm in a '7-8' length word example, you will see I am trying to say.

  • @NikhilRanjansingh
    @NikhilRanjansingh Před 7 lety +32

    At 14:20 i feel there should not be 5 followed then 9, 5 should be replaced by 9. Since at end we are finding palindrome around x not a.

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

    Way better than all written tutorials for manachers!!! this was amazing

  • @bewareofnikhil
    @bewareofnikhil Před rokem +3

    As always, concise, accurate, and easy to understand explanation of a rather tricky algorithm.

  • @akashkandpal1832
    @akashkandpal1832 Před 5 lety +18

    And the Oscar goes to Tushar Roy XD

  • @PIYUSH61004
    @PIYUSH61004 Před 3 lety

    This video really helped me in understanding this algorithm... Keep up the good work!

  • @shubhamsinha3368
    @shubhamsinha3368 Před 7 lety

    thanks Tushar saved my hours on hanging out the same explainatory stuff on the web

  • @andreasleonidou3620
    @andreasleonidou3620 Před rokem +1

    Best tutorial on this algorithm! Very well explained and with examples!! Thank you!

  • @shyamtripathy5084
    @shyamtripathy5084 Před 7 lety

    Its a nice video. I just wanted to ask you, that for any String(Odd/Even) we need to append "$" (2*n+1) ??? Or anything better suggestion u have ?

  • @sumanghosh3541
    @sumanghosh3541 Před 6 lety

    may I know at which point we need to pick a centre and start back ward calculation

  • @fan11657
    @fan11657 Před rokem

    The clearest explanation of Manacher's algorithm I've ever seen!!! Thanks a lot!!!

  • @yanalbright1493
    @yanalbright1493 Před 8 lety

    Hi, Tushar, thanks for the video. it is very helpful.
    May I have a question?
    In your first example, after you located the b at index 5, a Palindromic substring of length 9 obtained.
    Then you exclude the a at index 6. Afterwards can you just stop checking, it is because if the index at 7 will be another center of a palindromic substring, the max possible length would be 7. (even at index 6, we can give up since the possible longest substring would be 9, of course, unless we have to return all the longest palindromic substrings)

  • @adilkhatri7475
    @adilkhatri7475 Před 3 lety +44

    subtitles: hello friends my name is too sharp 😂😂😂

  • @JonathanBarrios2239
    @JonathanBarrios2239 Před 9 lety +1

    Just wondering when do you start to ask the question what could be my next center?

  • @DeepakGupta-yv8ft
    @DeepakGupta-yv8ft Před 4 lety

    your videos are amazing. keep up the good work.

  • @varaprasadbanda4951
    @varaprasadbanda4951 Před 2 lety

    The explanation was great. Appending '$' in between every character to make it an odd length string was an interesting idea to reduce the code.

  • @shashanksahu2146
    @shashanksahu2146 Před 7 lety

    Thank You Tushar Sir for great Explanation

  • @johnsnow2149
    @johnsnow2149 Před 5 lety +44

    you messed up in explanation where you started to explain how to choose next center may be around 3:00 . without explaining logic fully ..... you kept moving ... lost you there

    • @jimmcgaw
      @jimmcgaw Před 4 lety

      This is where I got lost too. The math clarified it when I worked it out. Since the "a" at index 4 will have the same possible palindrome length around it as the one at index 2, and since the max palindrome length of that character is 1, 4+1 does not take you outside the bounds of the longest palindrome we have since encountered, ie 5 < 6. But, the "b" at index 5 is like the "b" at index 1, in that it has a longest palindrome around it of length 3. Since 4 + 3 takes us outside the upper bound of the longest palindrome, whose upper bound index is 6. So, since 7 > 6, it's a candidate. This is what he means when he says "b" at index 5 might possibly expand outside the bounds of the longest palindrome we've encountered so far.

  • @yianghu5517
    @yianghu5517 Před 9 lety +1

    hello tushar, I have question about subarray sum II, the problem is Given an integer array, find a subarray where the sum of numbers is between two given interval. Your code should return the number of possible answer. for example: Given [1,2,3,4] and interval = [1,3], return 4, because The possible answers are: [0, 0][0, 1][1, 1][2, 2], O(n ^ 2) method is easy to implemented, but how to solve that in O(nlogn) time? My teacher said I can calculate the prefix sum array, then sort the that array, then I can get the answer, it is unreasonable.

  • @jvarunkumar
    @jvarunkumar Před 8 lety +47

    Can u give a better explanation as to why this algorithm runs in linear time?
    The algorithm goes several times back and forth on the tape... Run time complexity is not as straightforward as u mentioned.

    • @malharjajoo7393
      @malharjajoo7393 Před 7 lety +7

      +Emma Bostian -
      How can you say that ? For every palindrome centre , he seems to be checking to the left and right ( this could be a max of n-1 also... ).
      Can you say how it is O(7n) and not O(n^2).

    • @keliao2160
      @keliao2160 Před 7 lety +5

      but this algorithm doesn't expand from the center at any index right? It skips a lot. And also for calc the new length at a specific index, it takes use of the old data instead of calc from scratch. There must be a strict math way to prove the time complexity, it is not easy to see.

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

      @@EmmaBostian what if you run it n times? O(nn) = O(n) or O(n^2)

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

      @@shreyas6589 The right edge will never exceed the length of the string. So the inner loop will only run at most n times.

  • @compilations6358
    @compilations6358 Před 8 lety

    question : You directly said, "center is expanding this much" ,how is expansion measured? (eg: a[3] = 7)
    2. Shouldnt we stop moving mid if END_ARRAY - mid < max(CENTRAL_ARRAY) /2. Doesnt make sense to keep moving on the mid

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

    Hi Tushar, at 13:33, we have found the palindrome of length 11 at position centering at position > (N/2) where N is the length of the string. Can we stop at a palindrome length > N/2 and at a centering position >= stringLength/2, since the next 2 chars would be contained in the current large palindrome. Or can we in short ensure in this example that we do not process after palindrome length 11 is found, or could there be a corner case there ?

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

      Good question! I guess u r correct. there is no point in proceeding further to N/2, if you are palindrome length is already >= N/2.

    • @paramagurug9237
      @paramagurug9237 Před 7 lety +4

      Not really will be true for all cases - consider "c b a x a b a x a b a x a", the palindrome at b (position 6) will be 9. the Value 9 > N / 2 (N=14). But at position 8 with x as center, the palindrome value is 11 (if we break, we'll miss this condition). Even for best cases, if the characters included in the larger palindrome then we could simply substitute the mirror values, which is just assignment and can be in o(N).

    • @bharatgulati8531
      @bharatgulati8531 Před 5 lety

      @@paramagurug9237 the case above that you shared has the b(position 6) towards the left side (and not past the halfway point) as the total length of the string is 13 so jumana's suggestion still holds.
      We can restate the above condition in the following manner instead - when the
      (number of chars towards the right of the next possible center < half of the maximum palindrome string found till now)
      we can say that the current maxima will be the global maxima even after those chars are processed.

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

    Hello Tushar,
    I wanted to point out a small issue, which I am not sure if it is my implementation issue or some bug related to your algorithm but this algorithms seems to exceed time limits when we give a string with only a's having a length of 10^5

  • @hritikjoy8514
    @hritikjoy8514 Před 7 lety

    Nice explaination Tushar :)
    u made it easy

  • @jaatharsh
    @jaatharsh Před 3 lety

    11:01 didn't understand exactly why at this point we pick a new centre, can somebody please explain the reasoning?

  • @pranjalpimpale8465
    @pranjalpimpale8465 Před 7 měsíci +1

    wow, it was so hard to explain yet you did. Thanks

  • @vivek5562
    @vivek5562 Před 8 lety

    I was going through the code in github:
    Although there's a comment added

    //Mark newCenter to be either end or end + 1 depending on if we dealing with even or old number input
    int newCenter = end + (i%2 ==0 ? 1 : 0);
    with this code you are not taking $ to be the next center node, why?

  • @sanjeevrajora7335
    @sanjeevrajora7335 Před 5 lety

    what if i placed y at index 5 in array at 8:36,current array will remain of same size but palindrome around x(index 7) will go beyond current array.It will contradict what u say ,can u explain plz?

  • @YoyoMoneyRing
    @YoyoMoneyRing Před 7 lety

    nice explanation...especially the 4 cases for centre selection

  • @srajitsakhuja5410
    @srajitsakhuja5410 Před 6 lety +16

    Thank you for the video. The explanation was quite lucid.
    One suggested correction though, at 14:20, I suppose you would want to put the value '9' against the 13th element i.e. 'x' and not against the 14th element i.e. 'a'. Thanks again!

  • @yanivgardi9028
    @yanivgardi9028 Před 8 lety +18

    Thanks Tushar, another great video.
    question though - on 14:27 you wrote "9" in index 14 instead of in index 13. am i missing something here ?

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

      5 should be replaced with 9, since we are finding with respect to x.
      When we reached at point x we had >=5 situation, then again look with respect to x we get 9.

  • @rajmeghpara2985
    @rajmeghpara2985 Před 7 lety

    why at the position of 'b' we need to find NEXT CENTER ?? i just cant understand plz help me

  • @ShubhaRamani
    @ShubhaRamani Před 7 lety

    Tushar you have explained Manacher's better than anyone !

  • @cameronswartzell5251
    @cameronswartzell5251 Před 2 lety

    I kind of wish he had put in the math for how we determine the four cases: as discussed we just "looked" at the expansions centered on the new possible Ith value and determined it visually expanded over the boundaries of the current max palindrome. Case 4 specifically is if there is a prefix of (curr_len-1)/2, then the new center is (curr_len/2)+(prefix_len/2) right?

  • @neko419
    @neko419 Před 11 měsíci

    Thanks! Super clear. I finally understand Manacher's algorithm.

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

    read some webpages but can't understand. your video really help

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

    I am unable to follow you starting from 8:10 where you said that x at position 7 can't be further expand because position 10 is different from position 0 thus cannot be a 'a'. But at this point we should look at position 4 and check "if position 10 == position 4" and it seems to me position 4 is 'a' by accident. if I change you string to "cbaxabaxaba", this analysis doesn't hold.

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

      Very good question, in your example "c b a x a b a x a b a" - With b (position 5) as center we get 9 as palindrome, and when moving to x (position 7), the mirror (position 3 which is also x) will be within the range of left edge (exactly at left edge index which is 1). This will fall under the 3rd category (3. Palindrome expands till right edge and the mirror palindrome is still in the range - please watch full video) and x will become new center and will be palindrome 9.

  • @suffererandwitness3389
    @suffererandwitness3389 Před 9 lety +2

    very good initiative to explain these concepts to us ... i always liked ur videos especially on BIT ... If possible post videos on suffix array + Lcp by o(n) (without suffix trees) ... just goes over my head ... thanks

  • @savithamariswamy9300
    @savithamariswamy9300 Před 4 lety

    Explaination was very clear and i understood this in the first watch itself. Thanks Tushar.

  • @healthyaisletoasia
    @healthyaisletoasia Před 7 lety

    How is palindrome at array[14] length 9?

  • @dayakar7234
    @dayakar7234 Před 8 lety

    Nice work ! Thank you !

  • @igordemura
    @igordemura Před 8 lety

    Good explanation, Tushar. But when you have sample with red marker, you need to put last 9 in place of 5.

  • @studyonly6972
    @studyonly6972 Před 4 lety

    In your code you set the new center according to i is even or odd ? why

  • @bgokhale
    @bgokhale Před 4 lety

    How does it make it O(n)? Very act of finding a palindrome on either side of an index you are potentially going n indices. What am I missing?

    • @siobhanahbois
      @siobhanahbois Před 4 lety

      Each palindromic checks has an O(1) time complexity, so the total complexity is O(n).

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

    Thanx Tushar made my life easy bro...

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

    Very nicely explained. Thanks! It would've been even better if you could put up some code as well.

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

    This video is very helpful for me, while still, I need make 2 points clear by myself.
    1. Why array[7] can't be the new center in 8m18s
    2. Why the time complex is O(n)

  • @classicmusic2672
    @classicmusic2672 Před 8 lety

    hello you videos are great
    please can you please solve this one:
    define an algorithm to find longest balanced sub-string of a certain string of packets and parenthesis

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

    really appreciate how you make logics so easily understandable

  • @abhineelnandi9552
    @abhineelnandi9552 Před 4 lety

    Thanks a lot Tushar sir !!!

  • @himanshugupta1291
    @himanshugupta1291 Před 5 lety

    Very nicely explained. :)

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

    0:22 - how cells 8,9,10 (a,b,b) is a palindrome?

    • @sukhmeetsingh5421
      @sukhmeetsingh5421 Před 5 lety

      Bhool ho jati hai yun taish mein aya na karo, let's be human alright!

  • @mithunroy8599
    @mithunroy8599 Před 8 lety

    Ok! Now I got it :) Thanks Tushar

  • @abhilashsulibela1414
    @abhilashsulibela1414 Před 4 lety +6

    A very tough concept explained better than most other people out there! A great effort. Thank you for this video.

  • @bolestah
    @bolestah Před 8 lety

    Very good explanation!
    In 11:02, could you please explain using what case you picked 'X' as center of the new palindrome?
    Also could you do videos on 1D and 2D peak finding?

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

      In the example : a b a x a b a - first a (no palindrome therefore 1), then b is the center (with "a b a" as palindrome), then a (is the right edge of the current center b, so it's not the new center), next is x (which goes beyond the right edge of the current palindrome, therefore choose x as the new center with value 7).

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

    Thanks Tushar for such an awesome video !!
    I just have a query. why we need to preprocess the array in case there are even lenghted panlindromes?

    • @mhelvens
      @mhelvens Před 4 lety

      Because this algorithm is all about expanding from a center character, and even length palindromes do not have a center character.

  • @joyoptimal6286
    @joyoptimal6286 Před 6 lety

    At 3.21, at index 6. 'a' expands and is a candidate for center? No palindrome can be formed with characters to either side of 'a' at index 6. Can you clarify? Looks like you aren't answering any questions people have asked you below in comments.

  • @amansharan2820
    @amansharan2820 Před 3 lety

    Guys how to determine if it is even case or odd case as it depends on the length of the pallindrome and not length of the input array ? And to find length of the pallindrome we need to apply 0(n^2) algo someone kindly help me how to determine even n odd.

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

    How abb is palindromic ?
    Please correct if I am wrong.It's from index 8 to 10.

  • @venkatamunnangi
    @venkatamunnangi Před 8 lety

    Would you consider this algorithim to be following the concept "dynamic programming"?

    • @akarshy
      @akarshy Před 5 lety

      I feel like this is more similar to sliding window tbh

  • @remariorichards2789
    @remariorichards2789 Před 9 lety

    How do u calculate the palindrome length.your getting one for the first character when it should be zero ,because it has no further left but right.Explain
    ourself.

    • @YashSharmayssharma
      @YashSharmayssharma Před 8 lety

      +Tushar Roy I am unable to follow the video around 6:30 mins, when we chose value of 5 when comparing with 7. Still stumbling on that point. And also wondering if its O(n) since we are still scanning for lot of centers. Any tips would be appreciated.

    • @YashSharmayssharma
      @YashSharmayssharma Před 8 lety

      +Tushar Roy why: (2 * (end - j) + 1) in the condition, is it always true that its a pallindrome with everything between j and end ?
      T[j] = Math.min(T[i - (j - i)], 2 * (end - j) + 1);

    • @YashSharmayssharma
      @YashSharmayssharma Před 8 lety

      Nevermind, Got it !!
      Thanks for the tutorial.
      Also , If we change (2 * (end - j) +1) to (2 * begin - (i - (j - i))) +1 it is more intuitive
      articles.leetcode.com/wp-content/uploads/2011/11/palindrome_table5.png

    • @sunilnk95
      @sunilnk95 Před 7 lety

      can you explain this part???

  • @jovanrumenic1607
    @jovanrumenic1607 Před 5 lety +6

    how was 0:23 palindromic?? xD

    • @vibsh625
      @vibsh625 Před 3 lety

      "aba x aba" how was it not palindromic ?? xD

  • @surajthapliyal9374
    @surajthapliyal9374 Před 2 lety

    finally understood this complex algo, but not completely its time complexity .

  • @rajabose7880
    @rajabose7880 Před 8 lety

    it really cleared lots of doubts which i had before watching this video. thanks for clearing the base concepts behind the algo.

  • @NAVEENKUMAR-hr7fb
    @NAVEENKUMAR-hr7fb Před 3 lety

    its really though ...but i belived in tushar and watched twice and now i get it ...thanks man

  • @fracturedude
    @fracturedude Před 3 lety

    great explanation!

  • @joseville
    @joseville Před 2 lety

    Thanks for the video!
    Just a heads up, at 14:32 you marked the wrong cell. Marked cell 14 with 9, but should have overwritten cell 13's 5 with 9.

  • @thiestmayank
    @thiestmayank Před 4 lety

    In second case the at 13th index it should be 9 no?? But did you took 5? Only this point i didn't get. Will you please enlighten?

  • @jayantisswani
    @jayantisswani Před 7 lety

    Does finding the palindrome around each index not increase the time complexity? If this were so, why wouldn't the naive method have the same complexity?

    • @victorzamora2620
      @victorzamora2620 Před 7 lety

      In this case it's because you're reusing information thus not fully expanding every time.

  • @LoiTran2K2
    @LoiTran2K2 Před 6 lety

    NICE I don't know why people dislike your video

  • @rujixie9025
    @rujixie9025 Před 4 lety

    very helpful, thanks

  • @jeffabc1997
    @jeffabc1997 Před rokem

    Incredible explanation... WOW!!!!

  • @rushabhmukkirwar3600
    @rushabhmukkirwar3600 Před 5 lety +20

    this was clearly the only video till now that totally messed up!!!

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

    Subtitles : hello my name is too sharp 😊

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

    Would it not be 1st=1 central 'a' [a], 2nd=3 central 'b' [a,b,a], 3rd=5 central 'a' [a,b,a,b,a]?? It seems you have many errors in your explanation.

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

    your are very good teacher. Thank you for efforts.

  • @gauravkataraGK
    @gauravkataraGK Před 5 lety

    some concept that which center to pick was not clear

  • @slowdown_
    @slowdown_ Před 4 lety +5

    since when is "abb" a palindromic substring?? what am i missing here? ... 0:21

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

      He obviously meant to select 'bb'. Small error.

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

    I have got a ques. At time 6:00 in the video, We got max palidrome length as 9 at index 5; going any further can't give us any palidrome greater than this. I think we can stop there. This can be a optimization done in above algo. Tushar, let me know if I am wrong.

    • @paramagurug9237
      @paramagurug9237 Před 7 lety

      It is difficult to do this optimization, there are chances with best cases it will be helpful. Consider the same example with little modification - "c b a x a b a x a b a x a" with b as center (position 6) the palindrome is 9, but when you move to position 8 (x as center) then the palindrome will be 11.

  • @shivamkumar-qp1jm
    @shivamkumar-qp1jm Před 4 lety

    I am confused about 1st point and 3rd point looks like same thing

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

    sir , you are awesome :)

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

    can I do it just using a stack? start from the left pushing and popping when I need, I think it could be done in O(n)

  • @ihopethiscommentisntabusiv4670

    Amazing explanation, very clear. People who are complaining about not understanding... I don't know, its not that complicated, just watch it again a few more times? Its really not that hard to grasp.

  • @ashutoshdwivedi1952
    @ashutoshdwivedi1952 Před 5 lety

    What about even length palindrome

  • @naveenojha5603
    @naveenojha5603 Před 6 lety

    ye video samjha nhi raha but bata raha hainkya hua.

  • @xalizalizx
    @xalizalizx Před 2 lety

    Why is it O(2n) ? at 14:53

  • @ehabteima
    @ehabteima Před 2 lety

    Very convoluted

  • @yash30201
    @yash30201 Před 2 lety

    Thanks a lot!

  • @vipinyadav-to1wc
    @vipinyadav-to1wc Před rokem

    At 14:28, I think you want to put 9 corresponding to 'x' rather than 'a'.
    Thanks for the video. very well explained !

  • @yozaam
    @yozaam Před 3 lety

    at 4:47 when you say this isde should be a mirror of this side thats when the algorithm just clicked !!! thank you very much , reading on geeksforgeeks did allow me to understand it so easily

  • @prakharsaxena4938
    @prakharsaxena4938 Před 5 lety +6

    Generally your videos are too good expect this.

  • @raghavendrasinghchouhan17

    Bro its not O(N) even for odd case.. i feel . Can you pls answer this.. because going though particular index again we to expand for palindrome. What about that?.. then for even complexity will increase

  • @joseville
    @joseville Před 2 lety

    Let S be the string and LP[i] be the longest palindrome centered at index i of S.
    LP[i] = L implies that all(S[i-j] == S[i+j] for j in range(L//2 + 1)). As an example, the fact that LP[3] = 7 implies
    S[0] = S[6]
    S[1] = S[5]
    S[2] = S[4]
    S[3] = S[3]
    This leads to a question at 5:05, LP[4] >= 1 (the longest palindrome centered around S[4] is greater than or equal 1), but it also can't be >1 right?
    Assume, LP[4] > 1. If LP[4] > 1, then LP[4] must be at least 3 implying that S[3] and S[5] must be equal. However, noting that S[1] = S[5] due to LP[3] = 7, then S[1] = S[3] = S[5], but this implies that PL[2] >= 3 which is a contradiction given we know that LP[2] = 1. Therefore, LP[4] must equal 1.

  • @hakunamatata-nl4js
    @hakunamatata-nl4js Před měsícem

    thank you so much

  • @user-cy7ys5nb2p
    @user-cy7ys5nb2p Před 4 měsíci

    thanks a lot!

  • @theworldstudy2199
    @theworldstudy2199 Před 7 měsíci

    Why do you mark 3 last letters as a palindromic substring whereas they're not abb. At the 23d second of the video

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

    Generally your videos are good but I could not understand the explanation for this one. It will be great if you can create another video for Manacher's.

  • @surajsongire3954
    @surajsongire3954 Před 5 lety

    The last string was supposed to be even length, but it was odd length

    • @_perspective_
      @_perspective_ Před 5 lety

      palindromic string of even length *, it is correct