Longitud de la última palabra en una string

Dada una string s que consta de alfabetos en mayúsculas y minúsculas y caracteres de espacio vacíos ‘ ‘, devuelve la longitud de la última palabra de la string. Si la última palabra no existe, devuelve 0.

Ejemplos:  

Input  : str = "Geeks For Geeks"
Output : 5
length(Geeks)= 5

Input : str = "Start Coding Here"
Output : 4
length(Here) = 4

Input  :  **
Output : 0

Enfoque 1: Iterar string desde el índice 0 
Si iteramos la string de izquierda a derecha, debemos tener cuidado con los espacios después de la última palabra. Los espacios antes de la primera palabra se pueden ignorar fácilmente. Sin embargo, es difícil detectar la longitud de la última palabra si hay espacios al final de la string. Esto se puede manejar recortando los espacios antes o al final de la string . Si la modificación de la string dada está restringida, debemos crear una copia de la string y recortar los espacios a partir de ella.  

C++

// C++ program for implementation of simple
// approach to find length of last word
#include<bits/stdc++.h>
#include <boost/algorithm/string.hpp>
using namespace std;
 
int lengthOfLastWord(string a)
{
    int len = 0;
     
    /* String a is 'final'-- can not be modified
    So, create a copy and trim the spaces from
    both sides */
    string str(a);
    boost::trim_right(str);
    for (int i = 0; i < str.length(); i++)
    {
        if (str.at(i) == ' ')
            len = 0;
        else
            len++;
    }
    return len;
}
 
// Driver code
int main()
{
    string input = "Geeks For Geeks ";
    cout << "The length of last word is "
        << lengthOfLastWord(input);
}
 
// This code is contributed by Rajput-Ji

Java

// Java program for implementation of simple
// approach to find length of last word
public class GFG {
    public int lengthOfLastWord(final String a)
    {
        int len = 0;
 
        /* String a is 'final'-- can not be modified
           So, create a copy and trim the spaces from
           both sides */
        String x = a.trim();
 
        for (int i = 0; i < x.length(); i++) {
            if (x.charAt(i) == ' ')
                len = 0;
            else
                len++;
        }
 
        return len;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String input = "Geeks For Geeks  ";
        GFG gfg = new GFG();
        System.out.println("The length of last word is " + gfg.lengthOfLastWord(input));
    }
}

Python3

# Python3 program for implementation of simple
# approach to find length of last word
def lengthOfLastWord(a):
    l = 0
 
    # String a is 'final'-- can not be modified
    # So, create a copy and trim the spaces from
    # both sides
    x = a.strip()
 
    for i in range(len(x)):
        if x[i] == " ":
            l = 0
        else:
            l += 1
    return l
 
# Driver code
if __name__ == "__main__":
    inp = "Geeks For Geeks "
    print("The length of last word is",
                 lengthOfLastWord(inp))
 
# This code is contributed by
# sanjeev2552

C#

// C# program for implementation of simple
// approach to find length of last word
using System;
 
class GFG {
 
    public virtual int lengthOfLastWord(string a)
    {
        int len = 0;
 
        // String a is 'final'-- can
        // not be modified So, create
        // a copy and trim the
        // spaces from both sides
        string x = a.Trim();
 
        for (int i = 0; i < x.Length; i++) {
            if (x[i] == ' ') {
                len = 0;
            }
            else {
                len++;
            }
        }
 
        return len;
    }
 
    // Driver code
    public static void Main(string[] args)
    {
        string input = "Geeks For Geeks ";
        GFG gfg = new GFG();
        Console.WriteLine("The length of last word is "
                          + gfg.lengthOfLastWord(input));
    }
}
 
// This code is contributed by shrikanth13

Javascript

<script>
 
// js program for implementation of simple
// approach to find length of last word
 
 
function lengthOfLastWord(a)
{
    let len = 0;
 
    // String a is 'final'-- can
    // not be modified So, create
    // a copy and trim the
    // spaces from both sides
    x = a.trim();
 
    for (let i = 0; i < x.length; i++) {
        if (x[i] == ' ') {
            len = 0;
        }
        else {
            len++;
        }
    }
 
    return len;
}
 
// Driver code
 
input = "Geeks For Geeks ";
document.write("The length of last word is "+ lengthOfLastWord(input));
 
 
 
</script>

Producción: 

Length of the last word is 5

 Enfoque 2: iterar la string desde el último índice. Esta idea es más eficiente ya que podemos ignorar fácilmente los espacios de la última. La idea es comenzar a incrementar el conteo cuando encuentre el primer alfabeto del último y detenerse cuando encuentre un espacio después de esos alfabetos.

C++

// CPP program for implementation of efficient
// approach to find length of last word
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
 
int length(string str)
{
    int count = 0;
    bool flag = false;
    for (int i = str.length() - 1; i >= 0; i--) {
        // Once the first character from last
        // is encountered, set char_flag to true.
        if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            flag = true;
            count++;
        }
        // When the first space after the
        // characters (from the last) is
        // encountered, return the length
        // of the last word
        else {
            if (flag == true)
                return count;
        }
    }
    return count;
}
 
// Driver code
int main()
{
    string str = "Geeks for Geeks";
    cout << "The length of last word is " << length(str);
    return 0;
}
 
// This code is contributed by rahulkumawat2107

Java

// Java program for implementation of efficient
// approach to find length of last word
public class GFG {
    public int lengthOfLastWord(final String a)
    {
        boolean char_flag = false;
        int len = 0;
        for (int i = a.length() - 1; i >= 0; i--) {
            if (Character.isLetter(a.charAt(i))) {
                // Once the first character from last
                // is encountered, set char_flag to true.
                char_flag = true;
                len++;
            }
            else {
                // When the first space after the characters
                // (from the last) is encountered, return the
                // length of the last word
                if (char_flag == true)
                    return len;
            }
        }
        return len;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String input = "Geeks For Geeks  ";
        GFG gfg = new GFG();
        System.out.println("The length of last word is " + gfg.lengthOfLastWord(input));
    }
}

Python3

# Python3 program for implementation of efficient
# approach to find length of last word
def length(str):
 
    count = 0;
    flag = False;
    length = len(str)-1;
    while(length != 0):
        if(str[length] == ' '):
            return count;
        else:
            count += 1;
        length -= 1;
    return count;
 
# Driver code
str = "Geeks for Geeks";
print("The length of last word is",
                      length(str));
 
# This code is contributed by Rajput Ji

C#

// C# program for implementation of efficient
// approach to find length of last word
using System;
 
class GFG {
 
    public virtual int lengthOfLastWord(string a)
    {
        bool char_flag = false;
        int len = 0;
        for (int i = a.Length - 1; i >= 0; i--) {
            if (char.IsLetter(a[i])) {
                // Once the first character from last
                // is encountered, set char_flag to true.
                char_flag = true;
                len++;
            }
            else {
                // When the first space after the
                // characters (from the last) is
                // encountered, return the length
                // of the last word
                if (char_flag == true) {
                    return len;
                }
            }
        }
        return len;
    }
 
    // Driver code
    public static void Main(string[] args)
    {
        string input = "Geeks For Geeks ";
        GFG gfg = new GFG();
        Console.WriteLine("The length of last word is " + gfg.lengthOfLastWord(input));
    }
}
 
// This code is contributed by Shrikant13

PHP

<?php
// PHP program for implementation of efficient
// approach to find length of last word
 
function length($str)
{
    $count = 0;
    $flag = false;
    for($i = strlen($str)-1 ; $i>=0 ; $i--)
    {
        // Once the first character from last
        // is encountered, set char_flag to true.
        if( ($str[$i] >='a' && $str[$i]<='z') ||
            ($str[$i] >='A' && $str[$i]<='Z'))
        {
            $flag = true;
            $count++;
        }
         
        // When the first space after the
        // characters (from the last) is
        // encountered, return the length
        // of the last word
        else
        {
            if($flag == true)
                return $count;
        }
         
    }
    return $count;
}
 
// Driver code
$str = "Geeks for Geeks";
echo "The length of last word is ", length($str);
 
// This code is contributed by ajit.
?>

Producción:  

Length of the last word is 5

Este artículo es una contribución de Saloni Baweja . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Método #3: Usando split() y list 

  • Como todas las palabras en una oración están separadas por espacios.
  • Tenemos que dividir la oración por espacios usando split().
  • Dividimos todas las palabras por espacios y las almacenamos en una lista.
  • Imprime la longitud de la última palabra de la lista.

A continuación se muestra la implementación:

Python3

# Python3 program for implementation of efficient
# approach to find length of last word
 
 
def length(str):
  # Split by space and converting
    # String to list and
    lis = list(str.split(" "))
    return len(lis[-1])
 
 
# Driver code
str = "Geeks for Geeks"
print("The length of last word is",
      length(str))
 
# This code is contributed by vikkycirus

Javascript

<script>
 
// Javascript program for implementation
// of efficient approach to find length
// of last word
function length(str)
{
     
    // Split by space and converting
    // String to list and
    var lis = str.split(" ")
    return lis[lis.length - 1].length;
}
 
// Driver code
var str = "Geeks for Geeks"
document.write("The length of last word is " +
               length(str));
 
// This code is contributed by bunnyram19
 
</script>

Producción:

Length of the last word is 5

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *