字符串最后一个单词的长度 一、题目描述 二、代码实现 ①Java代码实现 ②Java代码实现(运行时间和占用内存较优的情况下的实现代码) ③C++代码实现 ④C实现
一、题目描述
①描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于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 ) ;
}