Leetcode 5. Longest Palindromic Substring

Поделиться
HTML-код
  • Опубликовано: 5 окт 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 года назад +48

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

  • @pratyushpandey6139
    @pratyushpandey6139 2 года назад +3

    Spent whole day on this , Thanks for each minute !

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

  • @sukhpreetsingh5200
    @sukhpreetsingh5200 Год назад +3

    Dry run and code explanation is just outstanding

  • @prashantmaurya6868
    @prashantmaurya6868 2 года назад +3

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

  • @SoumyaRanjanSahoo-kq4ez
    @SoumyaRanjanSahoo-kq4ez 7 месяцев назад +1

    Your explanation is very smooth.

  • @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;
    }
    };

  • @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;
    }

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

  • @VikashShukla07
    @VikashShukla07 Год назад +1

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

  • @saumyatyagi8768
    @saumyatyagi8768 2 года назад +1

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

  • @anoops7974
    @anoops7974 Год назад

    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

  • @faizanshaikh8738
    @faizanshaikh8738 11 месяцев назад

    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);
    }

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

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

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

  • @KhushalGautam-ne5nc
    @KhushalGautam-ne5nc 7 месяцев назад

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

  • @VV-ud3nh
    @VV-ud3nh 2 месяца назад

    Best Explanation !

  • @Sumit-ef3tu
    @Sumit-ef3tu 2 месяца назад +1

    helpful👍

  • @PujaBende-bn1ws
    @PujaBende-bn1ws 2 месяца назад

    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?

  • @princekumar-ot1ul
    @princekumar-ot1ul Год назад

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

  • @maneesh1558
    @maneesh1558 10 месяцев назад

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

  • @vanshvermadtu
    @vanshvermadtu Месяц назад

    Excellent

  • @shaliniguptaietlucknow2301
    @shaliniguptaietlucknow2301 2 года назад

    your energy of explanation way is incredible🥰...

  • @samrat_malisetti
    @samrat_malisetti 5 месяцев назад

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

  • @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 4 месяца назад

    such a great explanation, thanks

  • @john_slickk2204
    @john_slickk2204 2 года назад

    Daymmmm, that was do much helpful. Thank you!

  • @lambar0
    @lambar0 2 года назад

    Concise and Clear. Thanks

  • @killeraloo3247
    @killeraloo3247 10 месяцев назад

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

    • @aakashbhandari9761
      @aakashbhandari9761 9 месяцев назад

      Iska Time Complexity ky rhega bro?

    • @Antispiral77
      @Antispiral77 7 месяцев назад

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

  • @soumya1713
    @soumya1713 2 года назад

    your concept is very good.thanks .

  • @jay8118
    @jay8118 2 года назад

    The best explanation on YT..

  • @projectsdb4034
    @projectsdb4034 7 месяцев назад

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

  • @djpro6413
    @djpro6413 4 месяца назад

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

  • @amanbhatt1087
    @amanbhatt1087 2 года назад +1

    Thankyou alisha very informative tutorial

  • @PalakGrover-q1u
    @PalakGrover-q1u 6 месяцев назад

    Very amazing explanation!

  • @ARkhan-xw8ud
    @ARkhan-xw8ud 7 месяцев назад

    thanks

  • @md.imrankhan6912
    @md.imrankhan6912 Год назад

    Great

  • @aryanakash367
    @aryanakash367 7 месяцев назад

    nice explanation

  • @anishraj66
    @anishraj66 Год назад

    Very well. Explained thnx a lot

  • @rahulkarnalk4479
    @rahulkarnalk4479 2 года назад

    It shows memory limit exceeded in interviewbit

  • @anirudhm187
    @anirudhm187 2 года назад

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

  • @sanskarkumar028
    @sanskarkumar028 Год назад

    thanku ma'am for very clear explanation

  • @appsuniverse9976
    @appsuniverse9976 2 года назад

    This is very easy explanation for this question

  • @samridhshubham8109
    @samridhshubham8109 Год назад

    Absolutely perfect

  • @abhisheksolanki4163
    @abhisheksolanki4163 Год назад

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

  • @rajulshakywar3168
    @rajulshakywar3168 2 года назад

    Great Explanation !!

  • @utkarshmishra1200
    @utkarshmishra1200 Год назад

    Perfect explanation

  • @pavankaranam7469
    @pavankaranam7469 Год назад

    Great explanation. Period.

  • @raushankumar6993
    @raushankumar6993 11 месяцев назад

    Thanku🙏🙏🙏🙏

  • @rudrakshsharma4601
    @rudrakshsharma4601 2 года назад

    great work alisha

  • @krishnaramtripathi958
    @krishnaramtripathi958 11 месяцев назад

    Awesome explanation

  • @mahavishnug3149
    @mahavishnug3149 Год назад

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

  • @GauravSharma-ry7yc
    @GauravSharma-ry7yc 7 месяцев назад

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

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

  • @aasthachauhan4385
    @aasthachauhan4385 2 года назад

    can you explicitly write the complexity also in every code

  • @jaytempleton4146
    @jaytempleton4146 Год назад

    Thank You!!

  • @tcod69krishnakotgire39
    @tcod69krishnakotgire39 2 года назад

    Very Great Explanation 🔥

  • @Habibur176
    @Habibur176 11 месяцев назад

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

  • @rabindradocument8934
    @rabindradocument8934 2 года назад

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

  • @iuashrafi
    @iuashrafi Год назад

    Great !

  • @mineekumari7035
    @mineekumari7035 3 месяца назад

    not able to understand this code

  • @Idukhan-jj9kc
    @Idukhan-jj9kc 2 года назад

    Best solution 👌

  • @smitdumore1064
    @smitdumore1064 Год назад

    great explanation

  • @VivekKumar-xx5fy
    @VivekKumar-xx5fy 2 года назад

    very very easy and helpful🔥🔥

  • @deekshabhat5194
    @deekshabhat5194 11 месяцев назад

    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

  • @kaukuntlaprudviraj108
    @kaukuntlaprudviraj108 2 года назад

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

  • @gradentff39
    @gradentff39 Год назад

    Nice explanatuon

  • @ZuleyenineIbneNoman
    @ZuleyenineIbneNoman 2 года назад

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

  • @abhishekkarn8918
    @abhishekkarn8918 2 года назад

    Amazing explanation

  • @devavratsingh4910
    @devavratsingh4910 Год назад

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

  • @bishalkundu7592
    @bishalkundu7592 Год назад

    Great explanation 😊😊

  • @aryankumar87771
    @aryankumar87771 Год назад

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

  • @IllIIIIIIllll
    @IllIIIIIIllll 2 года назад

    Awesome 🤯👍

  • @harshdasila6680
    @harshdasila6680 Год назад

    Nice explanation:)

  • @Rajat_maurya
    @Rajat_maurya Год назад

    Thank you

  • @jayanthotwani6200
    @jayanthotwani6200 2 года назад

    thankyousomuchh

  • @hariprasath8818
    @hariprasath8818 2 года назад

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

  • @zohairshad9823
    @zohairshad9823 2 года назад

    Nice explanation 😊

  • @harshala5385
    @harshala5385 2 года назад

    thanks girl

  • @sufiyaniqbal5280
    @sufiyaniqbal5280 2 года назад

  • @devalpatel7243
    @devalpatel7243 Год назад

    which whiteboard application is used?

  • @finder1013
    @finder1013 9 месяцев назад

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

    • @aakashbhandari9761
      @aakashbhandari9761 9 месяцев назад

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

    • @finder1013
      @finder1013 9 месяцев назад

      ​@@aakashbhandari9761thank you for reply doubt clear

  • @akashghosh4677
    @akashghosh4677 Год назад

    Genius

  • @singhsanskar369
    @singhsanskar369 2 года назад

    Have u studied chemistry from JMR sir in resonance.

  • @pankaj_buddy
    @pankaj_buddy 11 месяцев назад

    love you mam

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

  • @vi_shalkumar10
    @vi_shalkumar10 8 месяцев назад

    why are u in so much hurry?

  • @startercoder
    @startercoder 7 месяцев назад

    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

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

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

  • @ChristForAll-143
    @ChristForAll-143 11 месяцев назад

    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👏