Length of Last Word - Leetcode 58 - Python

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 48

  • @NeetCode
    @NeetCode  3 года назад +4

    ✅ EASY PLAYLIST: ruclips.net/video/KLlXCFG5TnA/видео.html

    • @chiraagpala3243
      @chiraagpala3243 3 года назад

      will you be making a hard playlist as well?

  • @aNoobLikeSaibot
    @aNoobLikeSaibot 2 года назад +26

    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!

    • @marztianpapi3419
      @marztianpapi3419 2 года назад +5

      my code was
      new = s.strip(“ “).split(“ “)
      return len(new[-1])

  • @amra-dev
    @amra-dev 3 года назад +35

    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])

    • @gayan1742
      @gayan1742 3 года назад

      But then it would be 10x slower.

    • @venkatasundararaman
      @venkatasundararaman 2 года назад +4

      @@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.

    • @gayan1742
      @gayan1742 2 года назад +1

      @@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
      @lambdadelta_witch Год назад

      Splitting needs to be done only once, so s.rsplit(maxsplit=1)

    • @mufaddalmotiwala8672
      @mufaddalmotiwala8672 Год назад +1

      better still, you can just do return(len(s.split()[-1]))

  • @swimmingshi
    @swimmingshi 3 года назад +9

    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

    • @leeroymlg4692
      @leeroymlg4692 2 года назад +1

      don't need to .strip().
      split() removes all the whitespace

  • @shivarajbandaru2216
    @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

  • @user-nq7nt1rq9b
    @user-nq7nt1rq9b 3 года назад +6

    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

  • @everyontech2716
    @everyontech2716 Год назад +1

    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)

  • @rajarajan1338
    @rajarajan1338 10 месяцев назад +1

    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

  • @GfoxSim
    @GfoxSim 7 месяцев назад +1

    I solved this in one line using Python3 built-in functions and it's fast and efficient.
    return len(s.strip().split()[-1])

  • @QuantumVortex17
    @QuantumVortex17 2 года назад

    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

  • @dasshrs
    @dasshrs 2 года назад

    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

  • @lamedev1342
    @lamedev1342 2 года назад

    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(' ')

  • @Famelhaut
    @Famelhaut Год назад

    1 liner solution:
    class Solution:
    def lengthOfLastWord(self, s: str) -> int: return len(s.split()[-1])

  •  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
      @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

  • @suhelmakkad
    @suhelmakkad 2 года назад

    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

  • @muneerak1833
    @muneerak1833 9 месяцев назад

    class Solution(object):
    def lengthOfLastWord(self, s):
    strr=s.strip()
    str=strr.split(" ")
    l=str[-1]
    return len(l)

  • @lollollollol1622
    @lollollollol1622 3 года назад

    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

  • @mutaherkhan2161
    @mutaherkhan2161 2 года назад +1

    This code is not working on leedcode compiler. I getting time out errror

    • @KrutiDugade
      @KrutiDugade 2 месяца назад

      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.

  • @kiraqueenyt5161
    @kiraqueenyt5161 8 месяцев назад +1

    wow i got the exact same solution

  • @abdulhalimabdullahi9907
    @abdulhalimabdullahi9907 Год назад

    s = " fly me to the moon "
    l = s.split()
    last_word = l[-1]
    print(len(last_word))

  • @venkatrushivanga1025
    @venkatrushivanga1025 2 года назад

    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

  • @sophearyrin
    @sophearyrin 3 дня назад

    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;
    }
    }

  • @paragsarkar8258
    @paragsarkar8258 3 года назад

    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

  • @vatsalsharma5791
    @vatsalsharma5791 3 года назад

    Hey can you please make a video on “matrix block sum”

  • @razapanjwani-z2s
    @razapanjwani-z2s 19 дней назад

    why not just strip() and convert the string into array and get the last word from the array and then just return its length?

  • @user-vm8yk9ic2c
    @user-vm8yk9ic2c Месяц назад

    i love you sooo much dude

  • @lasredchris
    @lasredchris 3 года назад

    Question for you Neetcode - do you think doing these problems improve your ability as a software engineer at all?

    • @sancho608
      @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

  • @harrisamin
    @harrisamin 2 года назад

    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

  • @sabu4539
    @sabu4539 Год назад

    i used trim() and split(" "). think that's ok

  • @vinaydeshpande
    @vinaydeshpande 9 месяцев назад

    How's about?
    class Solution:
    def lengthOfLastWord(self, s: str) -> int:
    return (len((s.split())[len(s.split())-1]))

  • @gamesandsoftwares1441
    @gamesandsoftwares1441 Месяц назад

    my answer : arr=s.split()
    return(len(arr[-1]))
    beats 100%

  • @stutipatel1059
    @stutipatel1059 8 дней назад

    I used the same method, but seems to be exceeding time limit

  • @sabarishnarayanan4818
    @sabarishnarayanan4818 2 года назад

    return len(s.split()[-1])

  • @ayushflux
    @ayushflux 3 месяца назад

    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
    }

  • @techno-tronics4946
    @techno-tronics4946 3 года назад

    Sir how do I start with DP?

  • @ridhwana2331
    @ridhwana2331 3 месяца назад

    return len(s.strip().split(" ")[-1])
    this would work too

  • @user-nm2wc1tt9u
    @user-nm2wc1tt9u 10 месяцев назад

    class Solution:
    def lengthOfLastWord(self, s: str) -> int:
    new = s.split()
    req = new[-1]
    return len(req)
    Done with built in functions