Longest palindrome substring - LeetCode Interview Coding Challenge [Java Brains]

Sdílet
Vložit
  • čas přidán 6. 03. 2020
  • Have you seen the new Java Brains? Check out www.javabrains.io now for awesome courses and content!
    Interview Question: Find the longest palindrome substring from the given string
    Leetcode link: leetcode.com/problems/longest...
    Solution Gist: gist.github.com/koushikkothag...
    Difficulty level: Medium
    Language: Java
    Welcome to the Java Brains Java Interview challenge series of videos where we tackle various coding challenges ranging from the beginner level to advanced level - especially in the context of coding interviews.
    Any coding problems you would like me to explore? Please let me know in the comments what you think!
    #java #interview #javabrains

Komentáře • 164

  • @robdai
    @robdai Před 4 lety +102

    "resultLength = end - begin - 1;"
    it is not due to 0 indexing of Java. It is math. While finding inclusive length between two points you have to add 1 to its difference. eg. ZABBAV will be 4 - 1 + 1 = 4 chars long . You did "begin--" and "end++" before you break out of while loop which offsets the begin-end range by 2 units. Your correct start is "begin + 1" and correct end is "end - 1". The inclusive length of the substring thus is (end - 1) - (begin + 1) + 1 (due to inclusive range) which is equal to "end - begin - 1".
    Apart form that, a big fan of your teaching. Your tutorials helped me land my current job.

  • @crteezy
    @crteezy Před 4 lety +112

    I watched your previous palindrome video last month on the day before my interview and guess what? I got 4 hackerrank problems to solve and 2 of them were about palindromes !! AND I GOT THE JOB 😍
    Thank you sir!

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

      can we get that 4 four hackerrank problems?

    • @crteezy
      @crteezy Před 4 lety

      @@raniverla2731 I actually don't have access to them now. There were 2 different palindrome ones and some other 2 which I don't remember anymore

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

      good job!

  • @SpaceTimeBeing_
    @SpaceTimeBeing_ Před 4 lety +16

    Yeah! Leetcode problems from Java Brains! Can't wait for those incredible explanations haha

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

    Man this is the best explanation for this question, I have been struggling with this from so long. Thanks a lot!!

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

    Thank you for the excellent explanation! Special thanks for the "clean code" and expressive method/variable names-- rare to see that in LeetCode problem solution videos!

  • @NimbuCB
    @NimbuCB Před 3 lety +26

    Does anyone feel - What the hell I am doing with my life?Is our life all about all these LC codes.....Does this give you fulfillment? Philosophy apart .....Thankyou for the good explanation

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

      It is beautiful if you like solving things. It's practicing your analytical skills and identify patterns. Mathematicians and Physicists use these skills everyday to make things efficient and find solutions. However it's not fun if you don't like practicing/working on algorithms.

    • @MereAYT
      @MereAYT Před 3 lety

      The concepts underlying computer science are fascinating, and the applications of programming in solving real-world problems are exciting. Those things draw a lot of people into the field. Unfortunately, we have to pretend to be a parser to get a first round technical interview every time. The further along you are in your career, the more distanced you become from this, so it hits you like a bucket of cold water. You're not alone in the feeling. Fortunately, the interview usually becomes more substantial and conceptual after that, and most languages abstract this stuff away.

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

      I only care about the interview i will not spend not even 1 sec after i get the job

    • @ramfattah275
      @ramfattah275 Před 2 lety

      I feel you man, its all part of the game.

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

      It's the stupidest game.

  • @Daniyay
    @Daniyay Před 3 lety +42

    i understand your solution, but i feel like i would have never been able to think of this solution on my own. its discouraging sometimes :( thanks for explaining everything so clearly!

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

      Many are with you, so don't worry. Our practice should make us better hopefully. Good luck!

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

      Bro just learn Manachers algorithm and you will impress if this appears on an interview xD

    • @ngonimugandani4504
      @ngonimugandani4504 Před rokem

      i always write my own solutions that i understand better, challenge is they might not be efficient

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

    I really love these videos. Your explanations are extremely helpful and easy to understand, please make more!

  • @shafiaaskari5949
    @shafiaaskari5949 Před 3 lety

    This explanation was so easy and so well explained. I am really happy I found this video. Thanks, Java Brains !!

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

    Your video really helped. Thank you very much. Just a suggestion: if you can take an example and walk through the solution towards the end, that would be awesome

  • @TheSumitSagar
    @TheSumitSagar Před 3 lety

    please keep on these leetcode series they are really helpful and fun to watch.

  • @ayushisinghal2339
    @ayushisinghal2339 Před 3 lety

    Very helpful. You have explained it in detail to make it easy for everyone to understand. Thank you!

  • @jordanhumphrey6379
    @jordanhumphrey6379 Před 3 lety

    thanks so much for this explanation, it was very thorough and I was able to understand it. Take my upvote!

  • @harinijeyaraman8789
    @harinijeyaraman8789 Před 4 lety

    Amazing content! Found this explanation very helpful !

  • @Anubis10110
    @Anubis10110 Před 3 lety

    You are the most amazing teacher !!
    If you have some time try to explain backtracking and DP in simple way as usual.
    Thank you so much

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

    Very cool video, as always. One small mistake in your explanation in my opinion. The result length is equal to end - begin - 1 not because zero index but because when one subtracts end - begin, it gives you the difference and not the number of indexes included. For example if we have 1, 2, 3, 4, 5, 6 and begin = 2 and end = 5, the length is still equal to end - begin - 1.

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

    You are amazing! Teacher needs to learn from you how to teach as well.

  • @ankitaburbure8142
    @ankitaburbure8142 Před 2 lety

    I am glad I found your videos...:) your explanation actually helps to understand efficient solution ..

  • @Granta_Omega
    @Granta_Omega Před rokem

    I did a very complex solution where there was a nested loop and I put how many times I had a roll it back and it passed every test case. However, it would not be accepted by LeetCode because it runs out of time because it is way too complex. I'm glad I found this video to give me a better way to try it.

  • @senthilkumaran5317
    @senthilkumaran5317 Před 3 lety

    Hello, can you tell us what is the Space|Time complexity of this solution please?

  • @GomboevRL
    @GomboevRL Před 4 lety

    Mr Koushik, your tutorial is wonderful. It amazing))). I stuck with one question about spring configuration. Can we reload spring properties in context dynamically without restarting applicatiom? And how to do it. Stack overflow with baeldung tells about Apache PropertiesConfiguration. But how to do it without boot. Only spring core?

  • @ALEEMKHAWAR1
    @ALEEMKHAWAR1 Před 2 lety

    Thanks kaushik for such a wonderful explanation , big fan of teaching style

  • @ArjunKalidas
    @ArjunKalidas Před 4 lety

    I am still a little confused as to why we are calling expandRange method twice with different set of indices? I am not able to connect the dots. Can you please help me understand? Thank you!

  • @findarpit92
    @findarpit92 Před 4 lety

    Awesome explanation. :) Thank you sir :)

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

    we are running expandRange twice for even and odd length. Can't we put a check if(length %2) and accordingly call one of them? If we can't then please provide an explanation. Can't find an answer to this

  • @AmanRaj-tj7lj
    @AmanRaj-tj7lj Před 3 lety +1

    Great!!
    Feedback: Do a walkthrough of the code at then end.

  • @todortotev
    @todortotev Před 2 lety

    Great explanation, thank you!

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

    Thanks for the video. Question. is the time complexity O(n^2) because you loop n times and check very character in every iteration?

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

      the worst case is where every substring is a palindrome... this only happens if you have always the same character, like "aaaaaaaaaaa"... then you have O(N²)

  • @chandrakanthdudela5515

    Thanks a lot for the video! Only part which I couldn't understand is why we're doing "end - begin -1" in the if block.

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

      Assume the while loop breaks when begin=2 and end=5. That means the str.charAt(begin)==str.charAt(end) condition was satisfied for begin=3, end=4. The length of the palindromic string then is (4-3+1). If we write it in the current begin and end variable values it will be ( (4-3+1) = (4+1-1)-(2+1)+1 = (5-2-1)) or (end-begin-1)

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

    Please do a video series on Big O Notation and Time Complexity.

  • @alittlecoding
    @alittlecoding Před 2 lety

    awesome explanation. I just implemented your logic with both python and java to practice and understand more.

  • @youssefmyh
    @youssefmyh Před 3 lety

    That's the best explanation for the palindrome.
    You are perfect 😍😍😍😍😍

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

    Sir, I am your big fan, I have asked you earlier also please please make a video on saga pattern in java. There is not a single tutorial on youtube implementating saga. Please make a video on that. I will be very thankful to you for this. Atleast mention the time like 6 months chlega

  • @bhavinpatel5119
    @bhavinpatel5119 Před 3 lety

    Very well explained. Really helpful

  • @kartikenbarnwal
    @kartikenbarnwal Před 3 lety

    I can listen to you the whole day !! 😍😍

  • @don300100
    @don300100 Před 4 lety

    I have the same T Shirt as you are wearing Kaushik.... Thanks for the video :)

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

    Please correct me if I'm wrong but there's no need to call expandRange twice. You can simply check if, and only if, either the character left or right of the center is equal to the center. Because you can only have a palindrome with a 2-character center if both characters at the center are equal, otherwise it's no longer a palindrome.

    • @aakashgupta7211
      @aakashgupta7211 Před rokem +1

      Yes, I used:
      expand(s, i, i);
      if(s.charAt(i) == s.charAt(i+1))
      expand(s, i, i+1);
      And it worked fine for all the testcases.

  • @user-bd8nj4th8c
    @user-bd8nj4th8c Před 4 lety

    Hi Koushik, can you please do some spring integration videos for us.

  • @dr.downvote
    @dr.downvote Před 2 lety

    Can someone please tell me why this single line code is not preferred to check if a string is palindrome or not????
    return new StringBuilder(s).reverse().toString().equals(s);
    we take a string builder and reverse the string and checks if it's same with given string, so why do we have to write our own loops if there is a default function which does this for us?

  • @davinderpalsingh6412
    @davinderpalsingh6412 Před 4 lety

    Nice explanation Kaushik.

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

    Great explanation !!! please do more videos on leetcode sir

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

    great explanation and very clean code

  • @noushadh1109
    @noushadh1109 Před 4 lety

    @kaushik , How we know that , expandRange(...) got palindrome string ? This while loop anyway exit at one particular point either at end of index or characters are not equal. ?

    • @sheshashankar8304
      @sheshashankar8304 Před 4 lety

      I have the same doubt. In some cases, after exiting the loop, the substring might not even be a palindrome, and yet we are storing the start index and the length only because the if condition gets satisfied.

    • @naveengs2001
      @naveengs2001 Před 4 lety

      Yes, Even the for loop in the main method he wrote Is wrong , no need of -1there

  • @chetanbhandari3033
    @chetanbhandari3033 Před 4 lety

    Awesome, pls create video on time and space complexity

  • @ghanshyamkhatri3541
    @ghanshyamkhatri3541 Před 4 lety

    U r great Kaushik!!!

  • @aakashgupta7211
    @aakashgupta7211 Před rokem

    What would be the Time & Space complexity for this algorithm? Isn't it still n^2?

  • @shredder_plays
    @shredder_plays Před 4 lety

    Lovely great explaination do make a course on spring mvc , core

  • @elukok
    @elukok Před 3 lety

    This was my first assignment on my first week on university and my first programming class. I remember being so overwhelmed by it and feeling like it is just impossible to do, now it is more of joke :D

    • @williaamlarsson
      @williaamlarsson Před 2 lety

      Damn, my first assignment was to get user input do some simple math and string processing and printing the result 😅 thats a harsh first assignment to get

  • @mrOverdue
    @mrOverdue Před rokem

    What about if palindrome substring is from 0 to n-2 or n-3 ... index or vice versa

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

    I see you are using apple pen for yor drawing purpose , how you record the screen when you writing ?? :)

  • @shashankjakhmola6226
    @shashankjakhmola6226 Před 2 lety

    This code is not working for “bbbb” this type of string can you please help on this… what condition do we have to change so that with all possible scenarios it will work and this string also it will work?

  • @you.tube12818
    @you.tube12818 Před 4 lety

    I thought you mentioned that you would do Node JS videos daily .. eagerly waiting ..

  • @samahome
    @samahome Před 3 lety

    very good explanation to this bit tricky and complex problem

  • @dev-skills
    @dev-skills Před 3 lety

    I got this question asked in the first telephonic screening at google.

  • @testingDhippiuh
    @testingDhippiuh Před 4 lety

    Thank you, sir.

  • @rmiliming
    @rmiliming Před rokem

    Thank you for your nice video! There is sth confusing to me. For string "abc", when the loop starts from the first charcter "a", both the right and the left pointer will read from "a" first, but it seems that the "a" will be considered as a valid palindrome substring based on the method expandRange(). Am I wrong here?

    • @aakashgupta7211
      @aakashgupta7211 Před rokem

      You are correct. Each individual character is a palindrome in itself.

  • @Aapla_Institute
    @Aapla_Institute Před 4 lety

    awsome , i am eagrly looking zuul api gateway to complet microservices .

  • @saddamahmad2310
    @saddamahmad2310 Před 4 lety

    thank you very much sir for this video

  • @sithumdilanga650
    @sithumdilanga650 Před rokem

    Thank you so much

  • @amargupta1728
    @amargupta1728 Před 4 lety

    please make video on algorithm and data structure.

  • @findarpit92
    @findarpit92 Před 4 lety

    Please make videos of DP problems like this

  • @nathansnow
    @nathansnow Před 2 lety

    Or... Assuming we're looking for normal palindrome words, could we not just split the input string into an array of individual words, check and filter each word based on whether it's a palindrome, then just return the longest of all the found palindrome words?

  • @pandupvpk
    @pandupvpk Před 4 lety

    waiting for more LC..probably a collection...

  • @bewareofnikhil
    @bewareofnikhil Před rokem

    There exists an algorithm to solve this in O(n) time - Manacher's agorithm. But nice explanation of the O(n^2) solution.

  • @salmankevin7205
    @salmankevin7205 Před 4 lety

    Easy peasy after watching your video🤗. Why don't you post on competitive programming problems? 🙂

  • @aasthachauhan4385
    @aasthachauhan4385 Před 2 lety

    is the complexity oN2 right?

  • @sumansatpathy2862
    @sumansatpathy2862 Před 4 lety

    Sir .. please make videos on spring 5 webflux

  • @VikasKumar-wh2om
    @VikasKumar-wh2om Před 3 lety

    One point is not clear for me. Why are we calling expensdRange() method two times with different parameter? can we put these method in ifElse condition based on String odd/even length?

    • @Akshay-tj9hm
      @Akshay-tj9hm Před 3 lety

      As we don't have the start and end index, we don't know the string length in advance. Thats why we call it 2 times. As he says we move outwards, not inwards. I hope you get the point.

  • @bthakur3870
    @bthakur3870 Před 4 lety

    Hey Kaushik, Good work mate, In case strLength is 2, we can return same string, no need of further processing, Right ?

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

      No. What if the two characters are different? "ab" is not a palindrome. "aa" is.

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

    does he tell us what is run-time/space-time of his algorithm? is its n2 or linear?

    • @AmitToor
      @AmitToor Před 3 lety

      for (i=str.length,i>1;i--)
      for(j=0; j

  • @ruchibhadani6920
    @ruchibhadani6920 Před 2 lety

    Hi koushik
    Great explanation but one of my test case is failed. I tried debugging and it is working fine while compiling but when I submit my test case I am getting index out of bound exception: begin 2 , end 8 , length 5 . input= rfkqyuqfjkxy output :r

  • @parambharti7095
    @parambharti7095 Před 3 lety

    Awesome !!!!

  • @xilongzhang6856
    @xilongzhang6856 Před 2 lety

    Hii I am fairly new to Java. i have a small question. Do we not need to instantiate the int we created? like int resultStart=0; int resultLength=0. when the condition 'resultLength < end-start+1' first appears, resultLength does not have a value...

    • @stephanbranczyk8306
      @stephanbranczyk8306 Před 2 lety

      By default, the global instance variable resultLength is implicitly set to 0 when it's first declared I believe. But on Leetcode, you have to be careful with this because the test suite is not always well written. Sometimes, Leetcode will use the same Solution instance object to run through all of its tests, so that means that resultLength and resultStart might not get reset properly to 0 between tests. So if you want to be safe and avoid difficult to find bugs, if you're going to declare global instance variables within the scope of the Solution class, then you also need to explicitly initialize their value to 0 within the body of longestPalindrome() just to be safe.

  • @rahulsaxena9103
    @rahulsaxena9103 Před 4 lety

    if the string has odd number of characters, do we still need to call 'expandRange()' twice? if yes, why? Can you please expand on that bit a little more. That's the only thing which seems a bit confusing.

  • @pitchaiahbheemanapally2338

    What if given string is null ?
    Good explanation Kaushik.

  • @sivasurendranath7734
    @sivasurendranath7734 Před rokem

    How does this perform better than O(n^2) ? Arn't you still nesting loops ? Why would this be a better solution ? I don't get it.

    • @sivasurendranath7734
      @sivasurendranath7734 Před rokem

      Oh i get it, its because we are not looping through the entire string again, rather just through the sub strings ?

  • @vaishnavi_cholli
    @vaishnavi_cholli Před 2 lety

    good explanation

  • @dear_prit
    @dear_prit Před 4 lety

    When you are doing str.charAt(begin) == str.charAt(end) it will check the reference or the actual value? at 18:45 shouldn't we be using equals?

    • @pradeepwarade3669
      @pradeepwarade3669 Před 4 lety

      actual value will be checked (there's no ref. variable), from .charAt() you get a char and not String

    • @abukasozi295
      @abukasozi295 Před 3 lety

      the method charAt returns a character which is a primitive type/base type hence you can use == for evaluation, unlike reference types

  • @sheshashankar8304
    @sheshashankar8304 Před 4 lety

    Hey! Thank you so much for the video. I have a doubt. Let us say that we have been given a string "madamefg". In the iteration where begin and end indices are 1, the while loop will be true and begin will become 0 and end will be incremented to 2. In the second iteration, the while loop will not be satisfied, as m != d. However, the if condition will be satisfied, as resultLength will be 0 and end - begin - 1 will be 1, and the resultLength and resultStart will be 0. But, mad is not even a palidrome. Could you please explain how this works?

    • @mirageman2
      @mirageman2 Před 4 lety

      if you try it out with "mad" you get "m", because the substring has the indices 0 and 1 in the string, if you try "madam" the indices are overriten again with the provided palindrome of a greater length.

    • @nozzhard
      @nozzhard Před 3 lety

      "madam" it is a palindrome.

  • @samantr
    @samantr Před 4 lety

    @0:58
    comma or apostrophe (') just nitpick'ing :)

  • @taslimapatel5960
    @taslimapatel5960 Před 3 lety

    You are amazing !

  • @malikwaseem1983
    @malikwaseem1983 Před 3 lety

    You are awesome!

  • @kaliraj5659
    @kaliraj5659 Před 2 lety

    What if I reverse the String and Check the result with the original?.If the both are same. we will get a Palindrome.Is this way will provide a solution for the above Problem?

  • @snigdhamadhuri3133
    @snigdhamadhuri3133 Před 4 lety

    Hi Koushik
    Can you please explain me the solution for this problem
    Given a list of three digit numbers as input write a function that prints unique combination and also their sum
    Input = [111 ,121, 131,111,141]
    output=[111:3 , 121:4 ,131:5, 141:6] the number after the colon is the sum of those 3 digits and it returned without any duplicates.
    Thanks,
    Snigdha.

  • @zoel.9537
    @zoel.9537 Před 3 lety

    Can you create a channel for LeetCode challenge? Your explanation way better the Leetcode official solution.

  • @vikashtiwari2136
    @vikashtiwari2136 Před 3 lety

    For smallest palindrome substring?

  • @sarthaksrivastav3408
    @sarthaksrivastav3408 Před 4 lety

    Awesome explanation. Please change your name from java to something else because I kept avoiding your channel because of java😂😂

  • @ngonimugandani4504
    @ngonimugandani4504 Před rokem

    not sure if its the most efficient way of doing it but kinda works..
    public static boolean isPalindrome(String s) {
    if(s==""){
    return true;
    }
    String cleanedS = s.replaceAll("[^a-zA-Z0-9]", "");
    StringBuilder stringBuilder = new StringBuilder(cleanedS);
    StringBuilder reversedString = stringBuilder.reverse();
    if (cleanedS.equalsIgnoreCase(reversedString.toString())){
    return true;
    }
    return false;
    }

  • @arunprasanth9527
    @arunprasanth9527 Před 3 lety

    sir now am clearly underStood
    actually i misunderstand that if statement bcs of that wiredMath Trick
    if am doing below code mean i can understand .tq soMuch sir.
    begin++;end--;
    if(resultLength

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

    what about the special character avoidance? and what about that N^2 complexity, the for is calling a method with a while within

    • @ZapOKill
      @ZapOKill Před 4 lety

      the worst case is where every substring is a palindrome... this only happens if you have always the same character, like "aaaaaaaaaaa"... then you have O(N²)

  • @AmitKumar-hn7qh
    @AmitKumar-hn7qh Před 3 lety

    How loop starts with middle

  • @RaviAdhav
    @RaviAdhav Před 3 lety

    Kaushik, Since we want to know the longest palendrome. Why cant we do this?
    1) Try to find if the entire string (with length say L) is palendrome.
    2) If 1 is not true, check that if out of the two possible strings with length = L - 1, is any one a palendrome.
    3) If 2 is not true, check that if out of the three possible strings with length = L - 2, is any one a palendrome.
    4) If 3 is not true, check that if out of the four possible strings with length = L - 3, is any one a palendrome.
    and so on...

  • @umangjain5460
    @umangjain5460 Před 4 lety

    Correct me if I am wrong. The time complexity is O(n2) and space complexity is O(1).

    • @ZapOKill
      @ZapOKill Před 4 lety

      the worst case is where every substring is a palindrome... this only happens if you have always the same character, like "aaaaaaaaaaa"... then you have O(N²)
      I would argue that space complexity is the O(N), since you still need to String, I guess you are referring to Auxiliary Space which is O(1), since you only need constant amount of variables and no string duplication.
      However there are faster Algorithms running in O(N) time, but with higher space complexity... Boyer-Moore string-search algorithm can be modified, and suffix trees also can solve the problem faster

    • @umangjain5460
      @umangjain5460 Před 4 lety

      @@ZapOKill Yeah, I meant auxiliary space complexity.

  • @shikharchaudhary6984
    @shikharchaudhary6984 Před 4 lety

    We can do it in both O(n) and O(n^2) by the way

    • @ZapOKill
      @ZapOKill Před 4 lety

      the worst case is where every substring is a palindrome... this only happens if you have always the same character, like "aaaaaaaaaaa"... then you have O(N²)

  • @biswajit_rout_369
    @biswajit_rout_369 Před 2 lety

    ❤️❤️❤️❤️

  • @paradise_cracked
    @paradise_cracked Před 4 lety

    Magic =)

  • @divitvivit8803
    @divitvivit8803 Před 4 lety

    Simple and easy to understand could be:
    public class LongestPalindromeInString {
    public static void main(String[] args) {
    String s = ("1712332181");
    String longestPalindrome = "";
    if (s == null || s.trim().isEmpty()) {
    longestPalindrome="";
    }
    for (int i = 0; i < s.length(); i++) {
    for (int j = i; j < s.length(); j++) {
    String str = s.substring(i, j + 1);
    if (new StringBuilder(str).reverse().toString().equals(str)
    && longestPalindrome.length() < str.length()) {
    longestPalindrome = str;
    }
    }
    }

    System.out.println("Longest Palindrome Sequence :" + longestPalindrome);
    }
    }

  • @oluwarotimiadeola1997

    Is it just me or are we not allowed to reverse a string and compare it to check for a palindrome ....

  • @ShubhamSharma1210
    @ShubhamSharma1210 Před 4 lety

    just want to understand why we have called two times expandRange

    • @turnRight236
      @turnRight236 Před 4 lety

      i think there are two cases:
      1). if the string length is odd, we are going to have a single mid point and serve as initial value for both begin and end.
      2).if the string length is even, we can't have a single mid point. so the two midpoints we get will be mid and mid+1,
      where mid will serve initial value for begin and mid + 1 as initial value of end.
      hope you got my point

  • @interviewprep6827
    @interviewprep6827 Před 3 lety

    This solution is no longer accepted in leetcode.. Guess they add few more test cases.