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

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

Пікірлер: 164

  • @robdai
    @robdai4 жыл бұрын

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

  • @RavindraKumar17

    @RavindraKumar17

    4 жыл бұрын

    Thanks... That was actually helpful. :)

  • @harinijeyaraman8789

    @harinijeyaraman8789

    4 жыл бұрын

    Found this really helpful !! Thanks :)

  • @shafiaaskari5949

    @shafiaaskari5949

    3 жыл бұрын

    This is really helpful

  • @ankitaburbure8142

    @ankitaburbure8142

    2 жыл бұрын

    Your comment actually helped to understand the logic behind the value of resultLength.. :)

  • @RibenaLion

    @RibenaLion

    2 жыл бұрын

    I rarely reply on KZread.. but thanks for this!

  • @crteezy
    @crteezy4 жыл бұрын

    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

    4 жыл бұрын

    can we get that 4 four hackerrank problems?

  • @crteezy

    @crteezy

    4 жыл бұрын

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

    2 жыл бұрын

    good job!

  • @SpaceTimeBeing_
    @SpaceTimeBeing_4 жыл бұрын

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

  • @vinayakgupta1
    @vinayakgupta13 жыл бұрын

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

  • @abhijitpatwardhan8406
    @abhijitpatwardhan84063 жыл бұрын

    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
    @NimbuCB3 жыл бұрын

    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

    3 жыл бұрын

    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

    3 жыл бұрын

    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

    2 жыл бұрын

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

  • @ramfattah275

    @ramfattah275

    2 жыл бұрын

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

  • @bobweiram6321

    @bobweiram6321

    9 ай бұрын

    It's the stupidest game.

  • @Daniyay
    @Daniyay3 жыл бұрын

    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

    3 жыл бұрын

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

  • @Satenc0

    @Satenc0

    2 жыл бұрын

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

  • @ngonimugandani4504

    @ngonimugandani4504

    Жыл бұрын

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

  • @MegaValture
    @MegaValture4 жыл бұрын

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

  • @shafiaaskari5949
    @shafiaaskari59493 жыл бұрын

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

  • @prafullakh
    @prafullakh3 жыл бұрын

    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
    @TheSumitSagar3 жыл бұрын

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

  • @ayushisinghal2339
    @ayushisinghal23393 жыл бұрын

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

  • @jordanhumphrey6379
    @jordanhumphrey63793 жыл бұрын

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

  • @harinijeyaraman8789
    @harinijeyaraman87894 жыл бұрын

    Amazing content! Found this explanation very helpful !

  • @Anubis10110
    @Anubis101103 жыл бұрын

    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
    @johnny5gr4 жыл бұрын

    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
    @knrakeshkumar4 жыл бұрын

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

  • @ankitaburbure8142
    @ankitaburbure81422 жыл бұрын

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

  • @Granta_Omega
    @Granta_Omega Жыл бұрын

    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
    @senthilkumaran53173 жыл бұрын

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

  • @GomboevRL
    @GomboevRL4 жыл бұрын

    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
    @ALEEMKHAWAR12 жыл бұрын

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

  • @ArjunKalidas
    @ArjunKalidas4 жыл бұрын

    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
    @findarpit924 жыл бұрын

    Awesome explanation. :) Thank you sir :)

  • @vartikasingh6812
    @vartikasingh68123 жыл бұрын

    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-tj7lj3 жыл бұрын

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

  • @todortotev
    @todortotev2 жыл бұрын

    Great explanation, thank you!

  • @dnavas7719
    @dnavas77194 жыл бұрын

    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

    4 жыл бұрын

    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
    @chandrakanthdudela55154 жыл бұрын

    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

    4 жыл бұрын

    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
    @sriraghavsira71493 жыл бұрын

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

  • @alittlecoding
    @alittlecoding2 жыл бұрын

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

  • @youssefmyh
    @youssefmyh3 жыл бұрын

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

  • @sachinmittal968
    @sachinmittal9684 жыл бұрын

    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
    @bhavinpatel51193 жыл бұрын

    Very well explained. Really helpful

  • @kartikenbarnwal
    @kartikenbarnwal3 жыл бұрын

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

  • @don300100
    @don3001004 жыл бұрын

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

  • @annonymousarmadillo1094
    @annonymousarmadillo10942 жыл бұрын

    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

    Жыл бұрын

    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-bd8nj4th8c4 жыл бұрын

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

  • @dr.downvote
    @dr.downvote2 жыл бұрын

    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
    @davinderpalsingh64124 жыл бұрын

    Nice explanation Kaushik.

  • @nirmalm80
    @nirmalm804 жыл бұрын

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

  • @akashchoudhary5895
    @akashchoudhary589511 ай бұрын

    great explanation and very clean code

  • @noushadh1109
    @noushadh11094 жыл бұрын

    @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

    4 жыл бұрын

    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

    4 жыл бұрын

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

  • @chetanbhandari3033
    @chetanbhandari30334 жыл бұрын

    Awesome, pls create video on time and space complexity

  • @ghanshyamkhatri3541
    @ghanshyamkhatri35414 жыл бұрын

    U r great Kaushik!!!

  • @aakashgupta7211
    @aakashgupta7211 Жыл бұрын

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

  • @shredder_plays
    @shredder_plays4 жыл бұрын

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

  • @elukok
    @elukok3 жыл бұрын

    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

    2 жыл бұрын

    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 Жыл бұрын

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

  • @kuttikrishnankodoth1463
    @kuttikrishnankodoth14632 жыл бұрын

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

  • @shashankjakhmola6226
    @shashankjakhmola62262 жыл бұрын

    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.tube128184 жыл бұрын

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

  • @samahome
    @samahome3 жыл бұрын

    very good explanation to this bit tricky and complex problem

  • @dev-skills
    @dev-skills3 жыл бұрын

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

  • @testingDhippiuh
    @testingDhippiuh4 жыл бұрын

    Thank you, sir.

  • @rmiliming
    @rmiliming Жыл бұрын

    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

    Жыл бұрын

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

  • @Aapla_Institute
    @Aapla_Institute4 жыл бұрын

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

  • @saddamahmad2310
    @saddamahmad23104 жыл бұрын

    thank you very much sir for this video

  • @sithumdilanga650
    @sithumdilanga650 Жыл бұрын

    Thank you so much

  • @amargupta1728
    @amargupta17284 жыл бұрын

    please make video on algorithm and data structure.

  • @findarpit92
    @findarpit924 жыл бұрын

    Please make videos of DP problems like this

  • @nathansnow
    @nathansnow2 жыл бұрын

    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?

  • @bewareofnikhil
    @bewareofnikhil Жыл бұрын

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

  • @pandupvpk
    @pandupvpk4 жыл бұрын

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

  • @salmankevin7205
    @salmankevin72054 жыл бұрын

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

  • @aasthachauhan4385
    @aasthachauhan43852 жыл бұрын

    is the complexity oN2 right?

  • @sumansatpathy2862
    @sumansatpathy28624 жыл бұрын

    Sir .. please make videos on spring 5 webflux

  • @VikasKumar-wh2om
    @VikasKumar-wh2om3 жыл бұрын

    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

    3 жыл бұрын

    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
    @bthakur38704 жыл бұрын

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

  • @umangjain5460

    @umangjain5460

    4 жыл бұрын

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

  • @pranavchaudhary264
    @pranavchaudhary2643 жыл бұрын

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

  • @AmitToor

    @AmitToor

    3 жыл бұрын

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

  • @ruchibhadani6920
    @ruchibhadani69202 жыл бұрын

    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
    @parambharti70953 жыл бұрын

    Awesome !!!!

  • @xilongzhang6856
    @xilongzhang68562 жыл бұрын

    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

    2 жыл бұрын

    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
    @rahulsaxena91034 жыл бұрын

    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.

  • @getrogo4474

    @getrogo4474

    9 ай бұрын

    same can some one explain

  • @pitchaiahbheemanapally2338
    @pitchaiahbheemanapally23383 жыл бұрын

    What if given string is null ? Good explanation Kaushik.

  • @sivasurendranath7734
    @sivasurendranath7734 Жыл бұрын

    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

    Жыл бұрын

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

  • @vaishnavi_cholli
    @vaishnavi_cholli2 жыл бұрын

    good explanation

  • @dear_prit
    @dear_prit4 жыл бұрын

    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

    4 жыл бұрын

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

  • @abukasozi295

    @abukasozi295

    3 жыл бұрын

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

  • @sheshashankar8304
    @sheshashankar83044 жыл бұрын

    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

    4 жыл бұрын

    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

    3 жыл бұрын

    "madam" it is a palindrome.

  • @samantr
    @samantr4 жыл бұрын

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

  • @taslimapatel5960
    @taslimapatel59603 жыл бұрын

    You are amazing !

  • @malikwaseem1983
    @malikwaseem19833 жыл бұрын

    You are awesome!

  • @kaliraj5659
    @kaliraj56592 жыл бұрын

    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
    @snigdhamadhuri31334 жыл бұрын

    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.

  • @HanilKathuria

    @HanilKathuria

    3 жыл бұрын

    You can use HashMap for this

  • @zoel.9537
    @zoel.95373 жыл бұрын

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

  • @vikashtiwari2136
    @vikashtiwari21363 жыл бұрын

    For smallest palindrome substring?

  • @sarthaksrivastav3408
    @sarthaksrivastav34084 жыл бұрын

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

  • @ngonimugandani4504
    @ngonimugandani4504 Жыл бұрын

    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
    @arunprasanth95273 жыл бұрын

    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
    @gomezvillegasdaniel4 жыл бұрын

    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

    4 жыл бұрын

    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-hn7qh3 жыл бұрын

    How loop starts with middle

  • @RaviAdhav
    @RaviAdhav3 жыл бұрын

    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
    @umangjain54604 жыл бұрын

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

  • @ZapOKill

    @ZapOKill

    4 жыл бұрын

    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

    4 жыл бұрын

    @@ZapOKill Yeah, I meant auxiliary space complexity.

  • @shikharchaudhary6984
    @shikharchaudhary69844 жыл бұрын

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

  • @ZapOKill

    @ZapOKill

    4 жыл бұрын

    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_3692 жыл бұрын

    ❤️❤️❤️❤️

  • @paradise_cracked
    @paradise_cracked4 жыл бұрын

    Magic =)

  • @divitvivit8803
    @divitvivit88034 жыл бұрын

    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 for (int j = i; j String str = s.substring(i, j + 1); if (new StringBuilder(str).reverse().toString().equals(str) && longestPalindrome.length() longestPalindrome = str; } } } System.out.println("Longest Palindrome Sequence :" + longestPalindrome); } }

  • @oluwarotimiadeola1997
    @oluwarotimiadeola1997 Жыл бұрын

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

  • @ShubhamSharma1210
    @ShubhamSharma12104 жыл бұрын

    just want to understand why we have called two times expandRange

  • @turnRight236

    @turnRight236

    4 жыл бұрын

    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
    @interviewprep68273 жыл бұрын

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

Келесі