Backspace String Compare - Leetcode 844 - Python

  Рет қаралды 17,274

NeetCodeIO

NeetCodeIO

Күн бұрын

Пікірлер: 35
@user-j5ja95
@user-j5ja95 Жыл бұрын
I've been refreshing your page everyday for new videos haha thank you for all that you do, if I ever see you in person I'd love to treat you for coffee or yummy food for all the times you helped me prepare for interviews lol
@lifeofsanjai
@lifeofsanjai Жыл бұрын
i read through every LC solutions explaining the optimised solution but nothing was helpful. but now you made it clear. thanks a lot man for the explanation.
@hyperboliq
@hyperboliq 8 ай бұрын
That follow-up was a nightmare. Thanks for going over it.
@S3aw0lf
@S3aw0lf Жыл бұрын
spent over an hour trying to solve for O(1) space complexity even came up with a solution using Ascii value of the strings but the edge cases are making it diffcult so now came to watch ur vid :).Keep up the consistency
@thetensordude
@thetensordude Жыл бұрын
Thanks to your roadmap
@cloudx1057
@cloudx1057 3 ай бұрын
This is so clear!
@canete_code
@canete_code 5 ай бұрын
Thanks Neetcode, I've learned a lot from watching your videos, I came up with this solution myself: class Solution: def backspaceCompare(self, s: str, t: str) -> bool: return self.skipBackspace(s) == self.skipBackspace(t) def skipBackspace(self, string): skip = 0 res = "" for i in range(len(string) -1, -1, -1): if string[i] == "#": skip += 1 continue if skip > 0: skip -= 1 continue res += string[i] return res[::-1]
@shivambarke
@shivambarke 28 күн бұрын
Good Solution but it still is of O(s+t) space complexity
@AnnuSharma-mi9lb
@AnnuSharma-mi9lb Жыл бұрын
Okay, wait is over, thanks Navdeep ❤
@rugvedb9842
@rugvedb9842 Жыл бұрын
I can never really see where to use Stacks. I would have solved this problem in a different way but the stack solution you shared is definitely better!
@HtotheG
@HtotheG Жыл бұрын
My advice is that it just comes with practice seeing when to use a stack, queue, heap or other like structure. What helped me the most was using NeetCode's roadmap to see problems that utilize the same datastructures together in a group to try to identify patterns. One pattern for me is that stacks are often used when we want to deal with the element at [i-1] based on some condition at [i]. So in this problem, we might want to delete the previous character based on seeing a '#" in the current character. Hope this helps at all, best of luck!
@abhinavnair4577
@abhinavnair4577 8 ай бұрын
Here's a simpler version of the code - class Solution: def backspaceCompare(self, s: str, t: str) -> bool: def remove_char(s): stack = [] for char in s: if char=='#' and stack: stack.pop() elif char!='#': stack.append(char) return stack return remove_char(s)==remove_char(t)
@yasinunlu443
@yasinunlu443 8 ай бұрын
The space complexity is O(n) here. The optimized code is O(1) space complexity, which requires two pointer algorithm.
@abhinavnair4577
@abhinavnair4577 8 ай бұрын
@@yasinunlu443 in two pointer approach also the worst case complexity will be O(n)
@shreymehra6774
@shreymehra6774 Жыл бұрын
Could you also explain the problem 1094. Parallel Course 2? not able to understand and mostly people use lru cache instead of implementing dp
@naolfekadu6101
@naolfekadu6101 4 ай бұрын
how is it checking the last characters?
@AngelRojas-iy6yw
@AngelRojas-iy6yw Жыл бұрын
Hi. Is there an option on the neetcode website to reset the roadmap progress? Sometimes I like to start from scratch and I manually un-select all the questions ive done.
@NeetCodeIO
@NeetCodeIO Жыл бұрын
There should be a trash btn on the /practice page
@AngelRojas-iy6yw
@AngelRojas-iy6yw Жыл бұрын
@@NeetCodeIO I see it. Thank you. Keep up the good work, super helpful!
@swastik07
@swastik07 Жыл бұрын
def func(s): stack = '' for i in s: if stack and i == '#': stack = stack[:len(stack)-1] elif i != '#': stack += i return stack return func(s) == func(t) I have solved it like this
@jacobsmith538
@jacobsmith538 Жыл бұрын
This is so much better, I wanted to implement this but I didn't know how to do the subtraction of stack = stack[:len(stack)-1] Thank you!
@leeroymlg4692
@leeroymlg4692 Жыл бұрын
it would be a little more efficient to use an array as your stack instead of a string because slicing operations on a string isn't as efficient as popping from an array
@swastik07
@swastik07 Жыл бұрын
@@leeroymlg4692 stack becomes so efficient but I only did it to reduce space
@swastik07
@swastik07 Жыл бұрын
@@jacobsmith538 Thank you
@Rlh9xc
@Rlh9xc Жыл бұрын
That’s O(n) space complexity though right?
@GameFlife
@GameFlife Жыл бұрын
Hehe clever neet
@dohunkim2922
@dohunkim2922 6 ай бұрын
can anyone comment on this code? works but kinda slow class Solution: def backspaceCompare(self, s: str, t: str) -> bool: def replace_char_at_index(s, index, new_char): return s[:index] + new_char + s[index + 1:] def delete(word): i = 0 flag = 0 while i < len(word): if word[i] != "#": if i > flag: word = replace_char_at_index(word, flag, word[i]) flag += 1 else: print(flag > 0) if flag > 0: flag -= 1 print(word) i += 1 print(flag) print() return word[:flag] a, b = delete(s), delete(t) return (a == b)
@brainstormbalaclava5384
@brainstormbalaclava5384 Жыл бұрын
should't we name functon "nextValidIndex" instead of "nextValidChar" ?)
@oniii-chan_
@oniii-chan_ Жыл бұрын
I also got stuck at the last test case and hacked my way through while True:
@sumitsharma6738
@sumitsharma6738 Жыл бұрын
Let's write some neetcode today ❤
@swastik07
@swastik07 Жыл бұрын
Time and space complexity ---- > O(n) and O(1) def func(s): ln = 0 stack = '' for i in s: if stack and i == '#': ln -=1 stack = stack[:ln] elif i != '#': stack += i ln += 1 return stack return func(s) == func(t)
@sabu4539
@sabu4539 8 ай бұрын
cuz of the string, it still counts as o(n)
Power of Four - Leetcode 342 - Python
7:47
NeetCodeIO
Рет қаралды 12 М.
Champagne Tower - Leetcode 799 - Python
13:48
NeetCodeIO
Рет қаралды 13 М.
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Palindrome Linked List - Leetcode 234 - Python
11:06
NeetCode
Рет қаралды 104 М.
Sqrt(x) - Leetcode 69 - Python
8:34
NeetCodeIO
Рет қаралды 79 М.
An Introduction to Hash Tables in C
23:41
Ali Awan
Рет қаралды 1 М.
Time Needed to Inform All Employees - Leetcode 1376 - Python
10:42
Find the Difference - Leetcode 389 - Python
11:24
NeetCodeIO
Рет қаралды 11 М.
Check if Array Is Sorted and Rotated - Leetcode 1752 - Python
10:57
K-th Symbol in Grammar - Leetcode 779 - Python
10:19
NeetCodeIO
Рет қаралды 15 М.