字符串中最后一个单词的长度
给定一个由大写/小写字母和空格字符' ' 组成的字符串s,返回字符串中最后一个单词的长度。如果最后一个单词不存在,则返回 0。
例子:
Input : str = "Geeks For Geeks"
Output : 5
length(Geeks)= 5
Input : str = "Start Coding Here"
Output : 4
length(Here) = 4
Input : **
Output : 0
方法 1:从索引 0 迭代字符串
如果我们从左到右迭代字符串,我们必须注意最后一个单词后面的空格。第一个单词之前的空格很容易被忽略。但是,如果字符串末尾有空格,则很难检测到最后一个单词的长度。这可以通过修剪字符串之前或结尾的空格来处理。如果修改给定字符串受到限制,我们需要创建字符串的副本并从中修剪空格。
C++
// C++ program for implementation of simple
// approach to find length of last word
#include
#include
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
C++
// CPP program for implementation of efficient
// approach to find length of last word
#include
#include
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
=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.
?>
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
输出:
Length of the last word is 5
方法2:从最后一个索引迭代字符串。这个想法更有效,因为我们可以很容易地忽略最后一个空格。这个想法是当您遇到从最后一个字母开始的第一个字母时开始增加计数,并在遇到这些字母之后的空格时停止。
C++
// CPP program for implementation of efficient
// approach to find length of last word
#include
#include
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
=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.
?>
输出:
Length of the last word is 5
方法#3:使用 split() 和 list
- 因为句子中的所有单词都用空格分隔。
- 我们必须使用split() 将句子按空格分隔。
- 我们用空格分割所有单词并将它们存储在一个列表中。
- 打印列表最后一个单词的长度。
下面是实现:
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
输出:
Length of the last word is 5