No one explains solutions better than you, thank you so much for these videos, they are helping me a lot in the process of getting ready for technical interviews!
I think it would be great if you would show 2 solutions. One with a slow run time and then the optimal solution such as this. It really helps to understand it even more. Either way awesome video
you can add a check for prefix length ==0 at the end of the while loop. Incase nothing matches with the 2nd string then no need to check with rest of the list. And instead of substringing every itteration you can keep track of right index and only substring when returning the result.
Nice one. We can have a case inside for loop to break it when prefix length reaches zero to avoid continuing to loop when there's no scope of common prefix further.
such a clear approach! everytime i do leetcode and feel like wtf about a question ,i come here to watch your tutorial and i understand the solution so clearly! thanks a lot,u have a great help dude!
what a solution man thanks alot nick brother please continue making these videos. u r just different when it comes to explaining in most optimised ways.
IN PYTHON s=["flow","flew","flower"] k=s[0] flag=0 a="" for x in range(len(k)): for j in s[1:]: if k[x]!=j[x]: flag=1 else: a=""+k[x] if flag==1: break else: print(a,end="")
I thought of using 1st string in array of string as base and scanned through all others and checked if one by one it matches all other strings if it is then we increment the string and hence getting final lcp ans
Oh, so prefix means it has to be started at 0. After I knew this, this question became simple. Thank you for your great explanation! love it. Your method is way better than those complex long solutions which I couldn't understand
the only thing I don't understand is why we can set the first element as the prefix initially... isn't it possible that there is a different longest prefix? ex/ ["ab", "cd", "cde", "cdef","cdefg"], where if we set the prefix to "ab" wouldn't your solution return "" ?
probably very late but although the problem doesn't mention it specifically,longest common means that the common prefix must be common for all the elements in the array,so yes,"" would be returned and it would be correct,you can test it yourself inputting your string own string in the Testcase section(In the console) and seeing the expected resulted (from a working code) and your result (from your code)
No, it wouldn't because the inner loop will not depend on the length of input array. Input array could have 100 words but each word can't be longer than 20 characters, on average 5-10.
@@NickWhite What if all the elements in the string are same like all flowers than no deletion and the time complexity would be O(n^2)? I think we would have to use trie or suffix array to get O(n)?
i am solving in eclipse . i have the problem statement. can i share you that problem statement. i dont know the approach how to solve such problem, i am the beginner. also i am unaware of the concept like heap. please do the video on it
Can anyone tell me why do we set the first string as a prefix ? how do we know it is the longest string and the one that has all the letters that we want ? what if the array was like strs = [ "flight", "flower", "flow"]
when program runs it finds common between flight and flower first the common is fl and 2nd iteration it will find common between fl and flow so our aim is to find common in strings so what is there in 1st will be in all the strings if not it returns empty string
No one explains solutions better than you, thank you so much for these videos, they are helping me a lot in the process of getting ready for technical interviews!
thanks
Its insane how short this video is but you explained it better than all the long fancy videos. Thank you
I think it would be great if you would show 2 solutions. One with a slow run time and then the optimal solution such as this. It really helps to understand it even more. Either way awesome video
Above logic takes more time i think
you can add a check for prefix length ==0 at the end of the while loop. Incase nothing matches with the 2nd string then no need to check with rest of the list. And instead of substringing every itteration you can keep track of right index and only substring when returning the result.
Dude, I am probably much older than you, but goddamn I am LOVING your explanations. Getting a chance to prep my interviews very efficiently!
Nice one. We can have a case inside for loop to break it when prefix length reaches zero to avoid continuing to loop when there's no scope of common prefix further.
bro your explaining method is quite creative , out of 7 videos based on this that I'd WATCHED , this was the best!
Damn man that explanation was so smooth
such a clear approach! everytime i do leetcode and feel like wtf about a question ,i come here to watch your tutorial and i understand the solution so clearly! thanks a lot,u have a great help dude!
are you a better problem solver by now?
what a solution man thanks alot nick brother please continue making these videos.
u r just different when it comes to explaining in most optimised ways.
IN PYTHON
s=["flow","flew","flower"]
k=s[0]
flag=0
a=""
for x in range(len(k)):
for j in s[1:]:
if k[x]!=j[x]:
flag=1
else:
a=""+k[x]
if flag==1:
break
else:
print(a,end="")
got through 3 different videos for a good solution but nick is one who always gives the best approach , Appreciate bro
When I search up a leetcode question I always go to Nick White if its available 😂 Great video
Since indexOf is linear time complexity, Doesnt it make this O(n2) time complexity?
Why i didnt find your channel until now. Your explaination is crisp clear and very simple thankyou :)
Wow man. I could have never thought of approaching this problem this way. Thanks a ton👍
Exactly man. What should we do to get into thinking like these aproaches ?
I thought of using 1st string in array of string as base and scanned through all others and checked if one by one it matches all other strings if it is then we increment the string and hence getting final lcp ans
thanks, tried many things for c# but kept falling out of bounds. This works and simple to understand
What a clean and simple approach
Hands best step by step explanation.
You know what, you just explained in a so easier way that no one has explained yet.
It was so nicely explained.
Thanks a lot!
best explaination for this problem on youtube
Thanks for the explanation. I still don't really understand how your while loop works but I'll keep working to understand.
indexOf() takes O(N) time . How is your method linear?
Great explanation Nick!! Kudos to you.
Best solution for this problem . Great approach and clear explanation Thanks !!!
Oh, so prefix means it has to be started at 0. After I knew this, this question became simple. Thank you for your great explanation! love it. Your method is way better than those complex long solutions which I couldn't understand
You wrapped that up very smoothly. Thanks Nick🙂.
whats the timecomplexity?
the only thing I don't understand is why we can set the first element as the prefix initially... isn't it possible that there is a different longest prefix? ex/ ["ab", "cd", "cde", "cdef","cdefg"], where if we set the prefix to "ab" wouldn't your solution return "" ?
probably very late but although the problem doesn't mention it specifically,longest common means that the common prefix must be common for all the elements in the array,so yes,"" would be returned and it would be correct,you can test it yourself inputting your string own string in the Testcase section(In the console) and seeing the expected resulted (from a working code) and your result (from your code)
I think in place of “indexOf” .. we need to use “startswith” method… tq for the vdo
Yooo Man , I too had that same feeling
yo but what if the first element in the "fl" prefix array is something like "dog" or something?
best explanation, you explained clearly kudos
by watching this video i subscribed ur channel
Could you explain why the time complexity is O(S), where S is the sum of all characters in all strings?
but this is incorrect in the case of : "abower","flower","flightwer" the result should be "wer" but the result is empty.
Bro prefix means starting of the letter
You explained it very nicely. Thank you so much
Time complexity of indexOf is O(n) though.
So can what can be the overall time complexity for this
Man! your explanation is just fire 🔥🔥🔥
in worst case it is O^n2 right, is there any better solution!
Why do we need substring method we can check character by character vertically? Wouldn't that me more optimal?
Than you, well explained, was able to implement your solution in Python.
how did you came up with this solution?
Amazing explanation!
Still you are using While loop and one for-loop. Wouldn't this make the time complexity similar as two for-loops
No, it wouldn't because the inner loop will not depend on the length of input array. Input array could have 100 words but each word can't be longer than 20 characters, on average 5-10.
Great explanation. Can solve this with Trie Tree ?
That's the efficient way to solve this problem
Thank you for this amazing explanation. What is the time complexity?
I believe it is O(A*S) where A is the iteration for each element of array, where S for the iteration of string
the time complexity is? O(n^2)
Nope because we're not looping through the strs array in the inner loop we're popping characters off of one string
@@NickWhite What if all the elements in the string are same like all flowers than no deletion and the time complexity would be O(n^2)? I think we would have to use trie or suffix array to get O(n)?
@@suryaakella4508 it will be still O(NM) where M is the length of the longest string in the array
@@i_deepeshmeena Indeed, time complexity is O(MN) and space complexity is O(M).
Time complexity with a Trie (prefix tree) would be O(M log N) where M is the length of the longest string and N the number of strings, right?
str.indexOf and str.subStr is O(m*n) i think, so I don't think it's optimal.
Yes you're correct, a.indexOf(b) is O(len(a) *len(b)) in the worst case. There is a better solution
you can eventually shift to stringbuilder i guess.
how is a linear solution? theres is a nested while loop inside?
confusion.Cleared(); THANK YOU!
What is the time complexity of this solution?
Kudos to such a clean explanation ! Thank you.
really amazing solution
very clean solution.
Very nice. Commenting so I get more videos.
Thanks for your explain!
If possible, please tell the time and space complexity as well ...
I literally got stuck to this problem and I just gave up and went to RUclips lol
thanks for sharing such solution, very clear and easy one!
How does this not work for processing 4 that uses java ?
the code breaks though, with index out of bound error when there is no common prefix
thank you for explaining!
hello....please do the problem on the merging k- sorted array using heap.
send me a link in discord and i'll check it out
i am solving in eclipse . i have the problem statement. can i share you that problem statement. i dont know the approach how to solve such problem, i am the beginner. also i am unaware of the concept like heap. please do the video on it
Thanks for this awesome video
Thank you so much for the explanation ut was really nice.
Nice explanation
very clear! Thx man
Great explanation! Thx a lot!!
Amazing! thank you so much👍
can you make video on Gray code (Leetcode 89)?
I’ll check it out!
Best explanation 😍🥰
simple and on point!
Thank you so much for great explanation!!! Helped so much!
How about setting the prefix as the smallest length string and then starting loop from index 0. For longer string array it will be beneficial?
Can anyone explain me the while loop part of the code?
Can anyone tell me why do we set the first string as a prefix ? how do we know it is the longest string and the one that has all the letters that we want ?
what if the array was like strs = [ "flight", "flower", "flow"]
when program runs it finds common between flight and flower first the common is fl and 2nd iteration it will find common between fl and flow so our aim is to find common in strings so what is there in 1st will be in all the strings if not it returns empty string
Best Solution 😊👍
You a genius
wow! elegant solution!
Thank you !
thanks don
great.. nice and easy solution
Thanks Man!
Thanks man Nick... you are a pocket sized dynamite ;)
What's the time complexity of this algorithm?
linear
Best solutions , Yes you did !
Thanks buddy
Help me a lot, thanks
thanks man!
Really helpful!
This guy is smart
Thanks very much!
Thank you, well explained, and very helpful!
thank you
Simply wow
Nailed it!!
Thanks Broh
cout