一、题目描述
①描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
②输入描述
输入一行,代表要计算的字符串,非空,长度小于5000。
③输出描述
输出一个整数,表示输入字符串最后一个单词的长度。
④示例1
输入: hello nowcoder
输出: 8
说明: 最后一个单词为nowcoder,长度为8
二、代码实现
①Java代码实现
import java. util. Scanner ;
public class Main {
public static void main ( String [ ] args) {
Scanner scanner= new Scanner ( System . in) ;
String str= scanner. nextLine ( ) ;
String [ ] array= str. split ( " " ) ;
System . out. println ( array[ array. length- 1 ] . length ( ) ) ;
}
}
②Java代码实现(运行时间和占用内存较优的情况下的实现代码)
import java. io. InputStream ;
public class Main {
public static void main ( String [ ] args) throws Exception {
int number = 0 ;
InputStream in = System . in;
char c = ( char ) in. read ( ) ;
while ( c != '\n' ) {
if ( c == ' ' ) {
number = 0 ;
}
else {
number++ ;
}
c = ( char ) in. read ( ) ;
}
System . out. println ( number) ;
}
}
③C++代码实现
# include <iostream>
# include <string>
using namespace std;
int main ( ) {
string s;
getline ( cin, s) ;
int number= 0 ;
int len= s. length ( ) ;
for ( int i= ( len- 1 ) ; i>= 0 ; i-- ) {
if ( s[ i] != ' ' )
{
number++ ;
}
else
{
break ;
}
}
cout<< number<< endl;
return 0 ;
}
④C实现
# include <stdio.h>
# include <string.h>
int main ( ) {
char s[ 5000 ] ;
int i= 0 ;
int number= 0 ;
while ( scanf ( "%c" , & s[ i++ ] ) != EOF ) {
if ( s[ i- 1 ] == ' ' ) {
number= 0 ;
} else {
number++ ;
}
} ;
printf ( "%d" , number- 1 ) ;
}