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