字符串中最后一个单词的长度

给定由大写/小写字母和空格字符“”组成的字符串s,返回字符串中最后一个单词的长度。如果最后一个单词不存在,则返回0。

null

例如:

Input  : str = "Geeks For Geeks"Output : 5length(Geeks)= 5Input : str = "Start Coding Here"Output : 4length(Here) = 4Input  :  **Output : 0

方法1:迭代索引0中的字符串 如果我们从左到右迭代字符串,我们必须小心最后一个单词后面的空格。第一个单词前的空格很容易被忽略。但是,如果字符串末尾有空格,则很难检测最后一个单词的长度。这可以由 修剪字符串前后的空格 .如果修改给定字符串受到限制,我们需要创建字符串的副本,并从中修剪空格。

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>


输出:

Length of the last word is 5

方法2:迭代最后一个索引中的字符串。 这个想法更有效,因为我们可以很容易地忽略上一个的空间。这个想法是,当你遇到最后一个字母的第一个字母时,开始增加计数,当你遇到这些字母后面的空格时,停止计数。

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


输出:

Length of the last word is 5

本文由 萨洛尼巴哈酒店 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

方法#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

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


输出:

Length of the last word is 5
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享