Is Subsequence - Leetcode 392

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ม.ค. 2025

ความคิดเห็น • 43

  • @vikrampalpatel
    @vikrampalpatel 2 ปีที่แล้ว +63

    Why is like after watching your explanations, every problem looks easy!

  • @illu1na
    @illu1na ปีที่แล้ว +11

    Can you also cover the follow up question for this problem please?

  • @navaneethmkrishnan6374
    @navaneethmkrishnan6374 2 ปีที่แล้ว +4

    A lot of people ask why the question is given under the DP tag. This is because to find the length of the longest common subsequence, we need DP.

  • @a4rdev
    @a4rdev 2 ปีที่แล้ว +7

    Was struggling to understand two pointers. This is a great place to start. Thanks

  • @josecabrera7947
    @josecabrera7947 2 ปีที่แล้ว +19

    Dude mark my words if I get this internship with google or amazon in Seattle for summer 2023 I will personally take you to dinner !!!!

  • @nanoname5226
    @nanoname5226 3 ปีที่แล้ว +10

    Could you also address the follow up element of this problem? The one that talks about a stream of query strings "s" coming in.

    • @vasujhawar.6987
      @vasujhawar.6987 ปีที่แล้ว

      thats why I came here

    • @jayjw1
      @jayjw1 ปีที่แล้ว +2

      I'm not sure if there's more to it, but wouldn't you just check if s > t: return False automatically because s can't be a subsequence if it's larger than the entirety of t?

    • @gamba3685
      @gamba3685 4 หลายเดือนก่อน

      @@jayjw1 No, the follow-up element isnt talking about any specific s, it's talking about how to be more efficient if there are multiple s being sent to our function, how can we evaluate each s in an efficient way?

  • @NikitaNair
    @NikitaNair 24 วันที่ผ่านมา +1

    Best simplest solution

  • @buzunoorrishika8690
    @buzunoorrishika8690 2 ปีที่แล้ว +3

    Thank you so much I was able to write my own Java code by using your logic

  • @achraftasfaout2960
    @achraftasfaout2960 2 ปีที่แล้ว +3

    Pretty neet answer, thanks. The return statement could've been: return i == len(s)

  • @fanyang9777
    @fanyang9777 3 ปีที่แล้ว +6

    awesome lesson as always!

  • @farrukhniaz3218
    @farrukhniaz3218 ปีที่แล้ว +2

    instead of if else in return statement, write
    return i == len(s)

  • @danielsun716
    @danielsun716 2 ปีที่แล้ว

    DP solution:
    It is easy to think of this if you finished 10. regular expression matching.
    def isSubsequence(self, s: str, t: str) -> bool:
    if len(s) > len(t):
    return False

    dp = [[False] * (len(t) + 1) for _ in range(len(s) + 1)]

    for j in range(len(t) + 1):
    dp[len(s)][j] = True
    for i in range(len(s) - 1, -1, -1):
    for j in range(len(t) - 1, -1, -1):
    match = s[i] == t[j]
    if match:
    dp[i][j] = dp[i + 1][j + 1]
    else:
    dp[i][j] = dp[i][j + 1]
    return dp[0][0]

  • @jaideepsingh7955
    @jaideepsingh7955 2 ปีที่แล้ว +2

    How is this a DP problem ? Can u plz elaborate how this is breaking up into overlapping subproblems and optimal substructure ?

    • @navaneethmkrishnan6374
      @navaneethmkrishnan6374 2 ปีที่แล้ว +1

      To find the length of the LCS, we need DP. This one is a simple two-pointer solution.

  • @akshatverma838
    @akshatverma838 10 หลายเดือนก่อน

    you earned a subscriber today 👍👍.

  • @anutoshghosh7893
    @anutoshghosh7893 11 หลายเดือนก่อน

    In the two pointer approach, I did not understand one thing the ordering also has to be checked in a subsequence which is missing for the problem in the testcases, for instance here s = "acg" and t = "ahbgdc", they are considering s as a subsequence of t which should not be so, as the ordering is not maintained, although all elements are present from s in t.

    • @ryanbaker7419
      @ryanbaker7419 6 หลายเดือนก่อน

      did u ever figure it out? im wondering the same

  • @sa25078
    @sa25078 3 ปีที่แล้ว

    Thanks a lot .This video helped me a lot !!

  • @iosifpuha6114
    @iosifpuha6114 ปีที่แล้ว

    this man is a hero

  • @arunimachakraborty1175
    @arunimachakraborty1175 ปีที่แล้ว

    Thank you so much. You saved my day

  • @love2code_official
    @love2code_official 3 ปีที่แล้ว

    Thank you bro.A love from tamil nadu

  • @flatmapper
    @flatmapper ปีที่แล้ว +1

    Thank you NeetCode. One can just return `i == len(s)`

  • @krateskim4169
    @krateskim4169 ปีที่แล้ว

    Awesome explanation

  • @lamatenzin8756
    @lamatenzin8756 ปีที่แล้ว

    but wouldn't the while loop keeping looping endlessly if i is never incremented? because your'e only incrementing i if s[i] = s[j]. what if it never equals ?

    • @srx2106
      @srx2106 ปีที่แล้ว

      then j will keep incrementing and eventually stop the loop

  • @joshua_dlima
    @joshua_dlima 2 ปีที่แล้ว

    thank you so much!

  • @cryptohamsterx
    @cryptohamsterx 9 หลายเดือนก่อน

    bro are you genius!!

  • @RocketPropelledWombat
    @RocketPropelledWombat 2 ปีที่แล้ว +1

    This one killed me for some stupid reason -.-

  • @yashsolanki069
    @yashsolanki069 ปีที่แล้ว

    I'm still Scratching my head, what if it's not in the sequence?

  • @elias043011
    @elias043011 8 หลายเดือนก่อน

    return i == len(s)
    concise

  • @sanjeevacham2400
    @sanjeevacham2400 3 ปีที่แล้ว

    Excellent

  • @sriramprasanth3390
    @sriramprasanth3390 3 ปีที่แล้ว +1

    Bro what if it is wrong order acb,abcdef

    • @Track-Tor
      @Track-Tor 3 ปีที่แล้ว +1

      he explains it at 1:32

    • @DanhWasHere
      @DanhWasHere 3 ปีที่แล้ว

      Then it won't be a subsequence, as he explained

    • @kanikasaxena8603
      @kanikasaxena8603 ปีที่แล้ว

      It is handled through increment of j

  • @praneeth8380
    @praneeth8380 7 หลายเดือนก่อน

    def isSubsequence(s, t):
    if all(j in t for j in s):
    return True
    else:
    return False

  • @bilalmohammad4242
    @bilalmohammad4242 2 ปีที่แล้ว

    Thank you very much!