Leetcode 5. Longest Palindromic Substring

Поділитися
Вставка
  • Опубліковано 12 вер 2024

КОМЕНТАРІ • 125

  • @probabilitycodingisfunis1
    @probabilitycodingisfunis1  2 роки тому +20

    Code CPP:
    int n =s.size() , maxlength = 0; string ans;
    vectordp(n,vector(n,0));

    for(int diff = 0;diff

    • @dukhi_insaan
      @dukhi_insaan 2 роки тому

      #define f(a,b) pair temp = func(s,a,b);if(temp.second-temp.first+1>ma){ma = temp.second- temp.first+1;x=temp.first;y=temp.second;}
      class Solution {
      public:
      pair func(string &s, int i, int j)
      {
      while(i>=0 && jma){f(i,i);}
      i=q+k;
      if(ima ){f(i,i+1);}
      if(min(2*i+1,2*(n-i-1)+1)>ma){f(i,i);}
      }
      return s.substr(x,y-x+1);
      }
      };
      //Without DP : Runtime : 3s | Space : 7.1 MB
      //intuition : go thru every index and search for even palindrome and odd palindrome + maintain longest length so u dont have search in those subarrays which can't get upto maximum

    • @godanime8723
      @godanime8723 2 роки тому +3

      Please first explain its recursive/memoized version then move to Bottom Up Approach

    • @wondersofmovies
      @wondersofmovies Рік тому +2

      hi , im not able to understand this vectordp(n,vector(n,0)); can u pls explain this . im stuck in there 😢

    • @AshishKumar-ny4cq
      @AshishKumar-ny4cq Рік тому +1

      Its says memory limit exceeded

    • @aisharawat9102
      @aisharawat9102 Рік тому +1

      @@wondersofmovies we are making a 2d dp table of vector of vectors where in the bracket the n signifies the number of rows and each col is also a vector of size n and we initialise al values with 0.

  • @therealsumitshah
    @therealsumitshah 2 роки тому +47

    If possible make a playlist covering all DP concepts that would genuinely help because you teach very well.

  • @MitrankShah
    @MitrankShah 2 роки тому +6

    I haven't even started DP as of now, but I was solving the Data Structures II of leetcode where I came across this question and now after understanding the concept you explained, it's so clear to me!!! Thank you so very much!!!!

  • @travelnlearn
    @travelnlearn Рік тому +4

    Thank You Alisha for this awesome video,
    You explained complex things in a very easy manner,
    May god bless You,
    Keep it up

  • @arjunprasad1071
    @arjunprasad1071 Рік тому +1

    Great explaintion yet again, now addicted to your channels for explainations/logic😁 Tagging a **two pointer approach** for the same problem : 👇 class Solution
    {
    public:
    string longestPalindrome(string s)
    {
    int maxLengthOfPalindrome = 0;
    int maxStringStart = 0;
    int right , left;
    int lengthOfString = s.size();
    int lengthOfPalindrome;
    string ans = "";
    for(int i = 0 ; i < lengthOfString ; i++)
    {
    right = i;
    while(right < lengthOfString and s[i] == s[right]) right++;
    left = i - 1;
    while(left >= 0 and right < lengthOfString and s[left] == s[right] ) left--,right++;
    lengthOfPalindrome = right - left - 1;
    if(lengthOfPalindrome > maxLengthOfPalindrome)
    {
    maxLengthOfPalindrome = lengthOfPalindrome;
    ans = s.substr(left+1,maxLengthOfPalindrome);
    }
    }
    return ans;
    }
    };

  • @prashantmaurya6868
    @prashantmaurya6868 2 роки тому +3

    The way you explain its just another level every problem becomes easy.. 😇

  • @pratyushpandey6139
    @pratyushpandey6139 2 роки тому +3

    Spent whole day on this , Thanks for each minute !

  • @yuktikashyap2074
    @yuktikashyap2074 Рік тому +4

    those who are facing problem in java code and thanks for such a great explanation 🙂
    public String longestPalindrome(String s) {
    int n = s.length();
    int dp[][] = new int[n][n]; int max = 0; String ans = "";
    for(int diff = 0; diff len = 2-0+1 = 3
    */
    int len = j - i + 1;
    if(len>max){
    max = len;
    ans = s.substring(i,j+1); // substring start from i and end at j so j+1
    }
    }
    }
    }
    return ans;
    }

  • @faizanshaikh8738
    @faizanshaikh8738 10 місяців тому

    understood everything didi.Keep up the good work😊😊.I have a suggestion in the code...instead of calculating substring again and again we can just keep track of start and end point of substring and then while returning we can return in subtring format using those indexes .it will reduce time complexity to calculate the substring
    here code for my explaination
    public String longestPalindrome(String s) {
    int n = s.length();
    int dp[][] = new int[n][n];
    int startIdx = 0;
    int endIdx = 0;
    int maxLength = 0;
    //diagonally iterating
    for(int diff=0;diff0){
    if(j-i+1>maxLength){
    startIdx = i;
    endIdx = j+1;
    maxLength = j-i+1;

    }
    }
    }
    }
    return s.substring(startIdx,endIdx);
    }

  • @sukhpreetsingh5200
    @sukhpreetsingh5200 Рік тому +3

    Dry run and code explanation is just outstanding

  • @anoops7974
    @anoops7974 11 місяців тому

    Thank you so much. This video helped me a lot.
    Python version :
    n = len(s)
    dp = [[0]*n for j in range(n)]
    res = ''
    resLen = 0
    for diff in range(n):
    for i in range(n):
    j = i + diff
    if j >= n:
    break
    if diff == 0:
    dp[i][j] = 1
    elif diff == 1 and s[i] == s[j]:
    dp[i][j] = 2
    elif s[i] == s[j] and dp[i+1][j-1]:
    dp[i][j] = dp[i+1][j-1] + 2
    if dp[i][j]:
    curLen = j-i+1
    if curLen > resLen:
    resLen = curLen
    res = s[i: j+1]
    return res

  • @yadavankit
    @yadavankit Рік тому +1

    just to add, check how substring method in ur language works. in some languages it takes length, in some others, it takes end index which can also be inclusive or exclusive.
    in java, use : substring(i, j+i) as it takes start index and end index where end is not inclusive.
    BTW, kudos for the explanation, couldn't be any simpler !

  • @1mang0
    @1mang0 2 роки тому +4

    i have already done the question ....then also i came so that i can like ur video..thank for uploading video..keep going🤗🤗

  • @SoumyaRanjanSahoo-kq4ez
    @SoumyaRanjanSahoo-kq4ez 7 місяців тому +1

    Your explanation is very smooth.

  • @saumyatyagi8768
    @saumyatyagi8768 2 роки тому +1

    Thanks a lot !! You made DP so easy ...I always found this so confusing until I came to your channel :) .

  • @AI_Tales_for_Tots
    @AI_Tales_for_Tots 2 роки тому +1

    Your explanation is amazing. The suggestion is to cover some questions from GKG too. Thank you for nice content

  • @VikashShukla07
    @VikashShukla07 Рік тому +1

    You are a great explainer Alisha.....Thanks for the video

  • @KhushalGautam-ne5nc
    @KhushalGautam-ne5nc 6 місяців тому

    1000th like. I always search for your videos whenever I get stuck at any question. You are my tech crush❤

  • @PujaBende-bn1ws
    @PujaBende-bn1ws Місяць тому

    The explanation is really great. Thanks for the video. But this is not Manacher's algorithm which can solve it in O(n). Do you have that explanation?

  • @killeraloo3247
    @killeraloo3247 9 місяців тому

    Bhai kya hi samjhaya hai, sab samajh aa gya. Thanks for posting it. 🧡 from remote.

    • @aakashbhandari9761
      @aakashbhandari9761 8 місяців тому

      Iska Time Complexity ky rhega bro?

    • @Antispiral77
      @Antispiral77 7 місяців тому

      ​@@aakashbhandari9761 TC O(n2)
      SC O(n2)

  • @bhavnayadav5933
    @bhavnayadav5933 3 місяці тому

    woow di ,such a great explanation,thanku for helping me ,i have read dp for the first time,but u explained each concept so well that i understood in go

  • @startercoder
    @startercoder 6 місяців тому

    Java code -:
    class Solution {
    public String longestPalindrome(String s) {


    int end=s.length();
    String ans="";
    int maxLen=0;
    int dp[][]=new int[end][end];
    for(int arr[]:dp){
    Arrays.fill(arr,0);
    }

    for(int diff=0;diff

  • @samrat_malisetti
    @samrat_malisetti 4 місяці тому

    Need explanation about recursive brute force approach then try to explain tabulation. Directly dive into tabulation will make confusion in DP.

  • @princekumar-ot1ul
    @princekumar-ot1ul Рік тому

    very well explained but I think little bit modification is required because it is not working for input (s="cbbd")

  • @djpro6413
    @djpro6413 3 місяці тому

    Hi were you learn from this all the stuffs and how you go through the problems and solve it can you exaplain

  • @projectsdb4034
    @projectsdb4034 6 місяців тому

    what about the remaining empty boxes in matrix? will not iterate?

  • @maneesh1558
    @maneesh1558 9 місяців тому

    Woww!!! That’s amazing!! So easy to understand!!

  • @VV-ud3nh
    @VV-ud3nh 2 місяці тому

    Best Explanation !

  • @shaliniguptaietlucknow2301
    @shaliniguptaietlucknow2301 2 роки тому

    your energy of explanation way is incredible🥰...

  • @ARkhan-xw8ud
    @ARkhan-xw8ud 6 місяців тому

    thanks

  • @Habibur176
    @Habibur176 10 місяців тому

    alisha mam,
    for this code time complexity o(n)?

  • @spartan5886
    @spartan5886 Рік тому

    Loved your explanation please make more videos keep up the good work. If possible you can try to cover one of the DSA sheet of striver or love babbar.

  • @rishabhvaish835
    @rishabhvaish835 3 місяці тому

    such a great explanation, thanks

  • @Sumit-ef3tu
    @Sumit-ef3tu Місяць тому +1

    helpful👍

  • @amanbhatt1087
    @amanbhatt1087 2 роки тому +1

    Thankyou alisha very informative tutorial

  • @vanshvermadtu
    @vanshvermadtu 16 днів тому

    Excellent

  • @john_slickk2204
    @john_slickk2204 2 роки тому

    Daymmmm, that was do much helpful. Thank you!

  • @raushankumar6993
    @raushankumar6993 10 місяців тому

    Thanku🙏🙏🙏🙏

  • @sanskarkumar028
    @sanskarkumar028 Рік тому

    thanku ma'am for very clear explanation

  • @abhisheksolanki4163
    @abhisheksolanki4163 Рік тому

    Thankyou mam, Your teaching is amazing. Keep it up.

  • @jay8118
    @jay8118 2 роки тому

    The best explanation on YT..

  • @soumya1713
    @soumya1713 2 роки тому

    your concept is very good.thanks .

  • @appsuniverse9976
    @appsuniverse9976 2 роки тому

    This is very easy explanation for this question

  • @user-ti6zf5mj4x
    @user-ti6zf5mj4x 5 місяців тому

    Very amazing explanation!

  • @lambar0
    @lambar0 Рік тому

    Concise and Clear. Thanks

  • @anishraj66
    @anishraj66 Рік тому

    Very well. Explained thnx a lot

  • @rabindradocument8934
    @rabindradocument8934 2 роки тому

    Can we rename the variables i and j so that we can understand what those are even we look after years

  • @hariprasath8818
    @hariprasath8818 2 роки тому

    Nice Explanation . Is there any possibility that can you suggest any website for aptitude preparation and Guesstimate?

  • @rahulkarnalk4479
    @rahulkarnalk4479 2 роки тому

    It shows memory limit exceeded in interviewbit

  • @md.imrankhan6912
    @md.imrankhan6912 11 місяців тому

    Great

  • @mineekumari7035
    @mineekumari7035 3 місяці тому

    not able to understand this code

  • @aasthachauhan4385
    @aasthachauhan4385 2 роки тому

    can you explicitly write the complexity also in every code

  • @samridhshubham8109
    @samridhshubham8109 Рік тому

    Absolutely perfect

  • @kaukuntlaprudviraj108
    @kaukuntlaprudviraj108 2 роки тому

    outstanding explanation mam ,i reallly loved it .......

  • @GauravSharma-ry7yc
    @GauravSharma-ry7yc 7 місяців тому

    Your explanation is great but try going a bit slow to let it sink in for the viewers :)

  • @aryanakash367
    @aryanakash367 6 місяців тому

    nice explanation

  • @mahavishnug3149
    @mahavishnug3149 Рік тому

    The method is not applicable to java..
    Could you provide why it is?

  • @anirudhm187
    @anirudhm187 2 роки тому

    Referred so many solutions but no help. Loved the fact how lemon squeezy you made this ques look like 😅😅😅😅

  • @aswithasai4015
    @aswithasai4015 Рік тому

    its your video i search for when i search any Q because your teaching style is very easy to understand i had problem in understanding tabulation but your 1 solved Q made it clear which the whole playlist of others couldnt do

  • @utkarshmishra1200
    @utkarshmishra1200 Рік тому

    Perfect explanation

  • @pavankaranam7469
    @pavankaranam7469 Рік тому

    Great explanation. Period.

  • @ZuleyenineIbneNoman
    @ZuleyenineIbneNoman 2 роки тому

    it helps a lot to understand ,Thank you so much for your contribution.but can we make it O(n) somehow??

  • @devalpatel7243
    @devalpatel7243 Рік тому

    which whiteboard application is used?

  • @jaytempleton4146
    @jaytempleton4146 Рік тому

    Thank You!!

  • @rajulshakywar3168
    @rajulshakywar3168 2 роки тому

    Great Explanation !!

  • @aryankumar87771
    @aryankumar87771 Рік тому

    can you show non-dp approach for O(1)

  • @finder1013
    @finder1013 9 місяців тому

    mam baba is also plindrom substring so why it is not in ans?

    • @aakashbhandari9761
      @aakashbhandari9761 8 місяців тому

      No ! baba is not pallidrome when you read the string from back it will be abab which not equal to original one

    • @finder1013
      @finder1013 8 місяців тому

      ​@@aakashbhandari9761thank you for reply doubt clear

  • @rudrakshsharma4601
    @rudrakshsharma4601 2 роки тому

    great work alisha

  • @tcod69krishnakotgire39
    @tcod69krishnakotgire39 2 роки тому

    Very Great Explanation 🔥

  • @krishnaramtripathi958
    @krishnaramtripathi958 10 місяців тому

    Awesome explanation

  • @deekshabhat5194
    @deekshabhat5194 10 місяців тому

    I feel like i am really dumb. I understand the solution when i watch her video then don't remember it after some time . Its frustrating . Someone plz suggest some tips

  • @VivekKumar-xx5fy
    @VivekKumar-xx5fy 2 роки тому

    very very easy and helpful🔥🔥

  • @sufiyaniqbal5280
    @sufiyaniqbal5280 Рік тому

  • @devavratsingh4910
    @devavratsingh4910 Рік тому

    Time Limit Exceeded (TLE) error aa raha didi leetcode per ye code submit krne pe

  • @jayanthotwani6200
    @jayanthotwani6200 2 роки тому

    thankyousomuchh

  • @singhsanskar369
    @singhsanskar369 2 роки тому

    Have u studied chemistry from JMR sir in resonance.

  • @bishalkundu7592
    @bishalkundu7592 Рік тому

    Great explanation 😊😊

  • @harshdasila6680
    @harshdasila6680 Рік тому

    Nice explanation:)

  • @Idukhan-jj9kc
    @Idukhan-jj9kc Рік тому

    Best solution 👌

  • @Rajat_maurya
    @Rajat_maurya Рік тому

    Thank you

  • @abhishekkarn8918
    @abhishekkarn8918 2 роки тому

    Amazing explanation

  • @pankaj_buddy
    @pankaj_buddy 10 місяців тому

    love you mam

  • @smitdumore1064
    @smitdumore1064 Рік тому

    great explanation

  • @iuashrafi
    @iuashrafi 11 місяців тому

    Great !

  • @zohairshad9823
    @zohairshad9823 Рік тому

    Nice explanation 😊

  • @harshala5385
    @harshala5385 Рік тому

    thanks girl

  • @gradentff39
    @gradentff39 Рік тому

    Nice explanatuon

  • @IllIIIIIIllll
    @IllIIIIIIllll 2 роки тому

    Awesome 🤯👍

  • @akashghosh4677
    @akashghosh4677 Рік тому

    Genius

  • @vi_shalkumar10
    @vi_shalkumar10 7 місяців тому

    why are u in so much hurry?

  • @rishabhpatel1003
    @rishabhpatel1003 Рік тому

    Mam I tried your approach in java on leetcode but only 12 out of 140 test cases has paassed. Can you help me find the error in the code.
    Code:
    class Solution {
    public String longestPalindrome(String s) {
    int n=s.length();
    int[][] dp = new int[n][n];
    String ans="";
    int max=0;
    for(int diff=0;diff

    • @saipranayreddya4188
      @saipranayreddya4188 Рік тому

      TRY THIS!!!
      public String longestPalindrome(String s) {
      int n=s.length();
      int[][] dp=new int[n][n];
      String ans="";
      int maxlen=0;
      for(int diff=0; diff

    • @srikanthvaishali9443
      @srikanthvaishali9443 Рік тому

      The bug is
      ans=s.substring(i,max); is wrong.
      it should be ans=s.substring(i,j+1);
      Explanation: when we are updating the max it means we have the matrix indices which are nothing but string indices.

  • @shimlamam6066
    @shimlamam6066 2 роки тому

    Where r u @dhananjoy

  • @princegupta5339
    @princegupta5339 2 роки тому

    Miss Alisha Kabhi apne dill mein bhi welcome kar lo hamesha youtube channel pe welcome karti ho 🙂🙂🙂

  • @gayatrijoshi2777
    @gayatrijoshi2777 Рік тому

    Amazing Explaination 🤩

  • @ramg658
    @ramg658 2 роки тому

    mujhe samaj nhi ata jab palindrome ,ye sb software development me kam nhi ata to padhate aur puchhte kyu h isse question

    • @jay8118
      @jay8118 2 роки тому

      same goes with Aptitude Tests before interview rounds...may be they want to filter some students based on their logical and coding ability...BUT truth is this is not that much helpful in Development..

  • @ChristForAll-143
    @ChristForAll-143 10 місяців тому

    will you marry me? how come u so good with explanation and graceful?
    been following from so long❤
    great, but please don’t post more and more problem just give core conepts in a single vide like nge, nse, bfs/dfs/disjointset/swapping technique etc

  • @afzal.q842
    @afzal.q842 2 роки тому +1

    I need ur another social media I'd need to talk with you i am not on LinkedIn i need to share some content to you .

    • @shimlamam6066
      @shimlamam6066 2 роки тому

      Send here yr useful content

    • @afzal.q842
      @afzal.q842 2 роки тому

      @@shimlamam6066 give me ur insta id

    • @shivamnegi7552
      @shivamnegi7552 2 роки тому +1

      @@shimlamam6066 tomb tanane ka tlueprint dera hoga

  • @vish-singh
    @vish-singh 2 роки тому

    very well explained👏