I answered this question by myself with no help and it was pretty awesome. I finally did a problem without help. I used a for loop and started from the end of the string to the beginning. The conditions were, if my counter variable is zero and next character is a space, continue, else if, increment counter variable by one and else is break. Hope that makes some senses but it worked!
@marztianpapi34192 жыл бұрын
my code was new = s.strip(“ “).split(“ “) return len(new[-1])
@amra-dev3 жыл бұрын
If you are interested in Solving Python Builtin Functions, this might help. stip() will remove all covering spaces from string split(" ") will split string into array separated by " " len(res[-1]) will return length of last word res = s.strip().split(" ") return len(res[-1])
@gayan17423 жыл бұрын
But then it would be 10x slower.
@venkatasundararaman2 жыл бұрын
@@gayan1742 Actually it is faster than the solution in the video. Runtime: 28 ms, faster than 91.49% of Python3 online submissions for Length of Last Word. I feel it is ok to use the built in function as we are going to only use them in real world scenario.
@gayan17422 жыл бұрын
@@venkatasundararaman Maybe it's because the solution in the video uses two iterations, which is not really necessary. Iterating from the last character to the left until a space is found, then returning the length does also work. The last time I tried, it took only 0 ms. Not sure if it is because I used Java or not.
@lambdadelta_witch Жыл бұрын
Splitting needs to be done only once, so s.rsplit(maxsplit=1)
@mufaddalmotiwala8672 Жыл бұрын
better still, you can just do return(len(s.split()[-1]))
@swimmingshi3 жыл бұрын
strip() and split() string will also do. but watching your video I find sometimes algorithmic solutions might not be intuitive at first but your solution is really clever. I will keep watching your videos
@leeroymlg46922 жыл бұрын
don't need to .strip(). split() removes all the whitespace
@user-nq7nt1rq9b3 жыл бұрын
Hey man one personal question for you from where did you have learned the basic of Data structure and algorithm and your video are pretty much helpful to me Thanks a Ton
@shivarajbandaru2216 Жыл бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: x="1" y=[] for i in reversed (s): if i>x: y.append(i) if len(y)>0: if i
@everyontech2716 Жыл бұрын
easy class Solution: def lengthOfLastWord(self, s: str) -> int: temp = "" # using strip method we are actually remove whitespace from lefft and right side string = s.strip() for i in string: if i.isspace(): temp = "" else: temp = temp + i return len(temp)
@rajarajan133811 ай бұрын
A very simple method class Solution: def lengthOfLastWord(self, s: str) -> int: count = 0 for i in s[::-1]: if i == " ": if count >= 1: return count else: count += 1 return count
@GfoxSim8 ай бұрын
I solved this in one line using Python3 built-in functions and it's fast and efficient. return len(s.strip().split()[-1])
@QuantumVortex172 жыл бұрын
I have submitted this: class Solution(object): def lengthOfLastWord(self, s): array = s.split(' ') x = array[len(array)-1] count = 0 while x == '': count += 1 x = array[len(array) - count] if x != '': counter = 0 for i in x: counter += 1 return counter
@mutaherkhan21612 жыл бұрын
This code is not working on leedcode compiler. I getting time out errror
@KrutiDugade3 ай бұрын
This is because he forgot to decrement "i" by 1 in next while loop. This works: def lengthOfLastWord(self, s: str) -> int: i, length = len(s) - 1, 0 while s[i] == " ": i -= 1 while i >= 0 and s[i] != " ": length += 1 i -= 1 return length Or you can use other solution in the comments using strip function.
@dasshrs2 жыл бұрын
My solution: At first we go trough every spaces from the end of the array. Once we reach not space element, this is a word start. After we add elements when non-space character is present. If we have more then one word_symbols saved it's the word that has already started and if we reach other space chracter it's actually an end. class Solution: def lengthOfLastWord(self, s: str) -> int: word_symbols = 0 for i in range(len(s) - 1, -1, -1): if s[i] == ' ' and word_symbols != 0: break if s[i] == ' ': word_symbols = 0 else: word_symbols += 1 return word_symbols
@unknownboy817419 күн бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: words=s.split() if words: return len(words[-1]) else: return 0
@lamedev13422 жыл бұрын
My solution: I used extra memory but tried to reduce the time by implementing a hashmap. def lengthOfLastWord(self, s: str) -> int: length = 0 values = {} s += " " for i in s: if i != " ": length += 1 else: if length > 0: values[i] = length length = 0 return values.get(' ')
3 жыл бұрын
For C#, it's quite similar; var count = 0; var end = s.Length - 1; while(s[end] == ' ') { end--; } for(var i = end; i >= 0 && s[i] != ' '; i--) { count++; } return count;
@scottwarner9856 Жыл бұрын
Instead of iterating through the entire string char by char in C# (which could take much longer the lengthier the end of the string is), you can just use built in string methods .Trim() and .Split() to solve this more quickly in just 3 lines of code: string trimmed = s.Trim(' '); //removes given whitespace chars from ends of s string[] words = trimmed.Split(' '); //splits words in trimmed into separate strings return words[words.Length - 1].Length; //returns length of last word in arr words
@suhelmakkad2 жыл бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: length, prevLength = 0, 0 for char in s: if char == " ": if length != 0: prevLength = length length = 0 else: length += 1 return length if length != 0 else prevLength
im a newb but this is my solution class Solution: def lengthOfLastWord(self, s: str) -> int: s = ' '.join(s.split()) last = s[::-1] count = 0 last = last + " " for c in last: if c == " ": return(count) break count +=1
s = " fly me to the moon " l = s.split() last_word = l[-1] print(len(last_word))
@razapanjwani-z2sАй бұрын
why not just strip() and convert the string into array and get the last word from the array and then just return its length?
@venkatrushivanga10252 жыл бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: endIdx=len(s)-1 strIdx=0 while endIdx>=0: if s[endIdx]==" " and strIdx!=0: return strIdx-endIdx if s[endIdx]!=" " and strIdx==0: strIdx=endIdx endIdx-=1 return strIdx-endIdx
@kiraqueenyt51619 ай бұрын
wow i got the exact same solution
@sophearyrinАй бұрын
In Java code solution: class Solution { public int lengthOfLastWord(String s) { int count =0; s = s.trim(); int n = s.length(); for(int i=n-1; i>=0; i--){ if(s.charAt(i) != ' '){ count++; }else{ break; } } return count; } }
@vatsalsharma57913 жыл бұрын
Hey can you please make a video on “matrix block sum”
@paragsarkar82583 жыл бұрын
def lengthOfLastWord(s): i , length = len(s) - 1, -1 while i >= 0: if s[i] == ' ' and length != -1: return length - i if s[i] != ' ' and length == -1: length = i i -= 1 return length + 1 if length != -1 else 0 I did it like this
@user-vm8yk9ic2c2 ай бұрын
i love you sooo much dude
@stutipatel1059Ай бұрын
I used the same method, but seems to be exceeding time limit
@lasredchris3 жыл бұрын
Question for you Neetcode - do you think doing these problems improve your ability as a software engineer at all?
@sancho608 Жыл бұрын
No. They are just silly questions. Just like common entrance exams for high school. They don't really help you out in high school
@sabu4539 Жыл бұрын
i used trim() and split(" "). think that's ok
@harrisamin2 жыл бұрын
Hey Neet, I think I brute forced this with 1 for loop, but leetcode doesn't like my solution. Could you or anyone else help me evaluate my solution? and its efficiency in big o notation? class Solution: def lengthOfLastWord(self, s: str) -> int: maxStr = '' for i in range(len(s)): if s[i] != ' ': maxStr += s[i] continue if s[i:] == ' '*len(s[i:]): return len(maxStr) maxStr = '' return len(maxStr) Thanks in advance! -Harris
my answer : arr=s.split() return(len(arr[-1])) beats 100%
@sabarishnarayanan48183 жыл бұрын
return len(s.split()[-1])
@techno-tronics49463 жыл бұрын
Sir how do I start with DP?
@9eyeKnight4 ай бұрын
just tried to do with beginner knowledge but it only beats 5% lol var lengthOfLastWord = function(s){ s = s.toLowerCase() let a = '' let c = '' let alpha = 'qwertyuioplkjhgfdsazxcvbnm' for(i=s.length-1;i>-1;i--){ a = a + s[i] } for(let i=0;i-1){ break } } for(let i=0; i-1){ c = c+ a[i] }else if (a[i]==' '){ return c.length } } return c.length }
@ridhwana23314 ай бұрын
return len(s.strip().split(" ")[-1]) this would work too
@user-nm2wc1tt9u11 ай бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: new = s.split() req = new[-1] return len(req) Done with built in functions