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]))
@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
@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
@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)
@GfoxSim7 ай бұрын
I solved this in one line using Python3 built-in functions and it's fast and efficient. return len(s.strip().split()[-1])
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
@rajarajan13389 ай бұрын
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
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
@abdulhalimabdullahi990711 ай бұрын
s = " fly me to the moon " l = s.split() last_word = l[-1] print(len(last_word))
@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
@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
@kiraqueenyt51617 ай бұрын
wow i got the exact same solution
@gamesandsoftwares144125 күн бұрын
my answer : arr=s.split() return(len(arr[-1])) beats 100%
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
@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(' ')
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
@sabu4539 Жыл бұрын
i used trim() and split(" "). think that's ok
@lollollollol16223 жыл бұрын
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
@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
@user-vm8yk9ic2c24 күн бұрын
i love you sooo much dude
@vatsalsharma57913 жыл бұрын
Hey can you please make a video on “matrix block sum”
@mutaherkhan21612 жыл бұрын
This code is not working on leedcode compiler. I getting time out errror
@KrutiDugadeАй бұрын
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.
@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
@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
@sabarishnarayanan48182 жыл бұрын
return len(s.split()[-1])
@ridhwana23312 ай бұрын
return len(s.strip().split(" ")[-1]) this would work too
@techno-tronics49463 жыл бұрын
Sir how do I start with DP?
@ayushflux2 ай бұрын
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 }
@user-nm2wc1tt9u10 ай бұрын
class Solution: def lengthOfLastWord(self, s: str) -> int: new = s.split() req = new[-1] return len(req) Done with built in functions