在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过
。
在一行上输出一个整数,代表最后一个单词的长度。
HelloNowcoder
13
在这个样例中,最后一个单词是
,长度为
。
A B C D
1
/*使用动态数组来做,输入的字符串依次存入数组中,
最后返回数组中最后一个元素(字符串)的长度*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
string input;
vector<string>arr;
while(cin>>input){
arr.push_back(input);
}
cout<<arr[arr.size()-1].length()<<endl;
return 0;
}
import java.util.*;
public class Main{
public static int lengthOfLast(String str) {
String[] s =str.split(" ");
return s[s.length-1].length();
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String str = scan.nextLine();
System.out.println(lengthOfLast(str));
}
}
} str = input().strip().split() print(len(str[len(str)-1]))
// C++
//有些同学的答案没考虑到末尾有空格的情况,对于末尾有空格的都输出为0了。
//“hello world ”依然输出5.
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
while(getline(cin,s)){
int n=0,flag=1;
for(int i=s.length()-1;i>=0;--i){//倒着计算
if(flag && s[i]==' '){//如果末尾有空格,先清除末尾空格
continue;
}
else if(s[i]!=' '){
flag = 0;
++n;
}
else{
break;
}
}
cout << n << endl;
}
return 0;
}
#include <stdio.h>
int main(void)
{
int len = 0;
char c = '\0';
while( (c = getchar()) != '\n' )
{
if( c == ' ' )
len = 0;
else
len++;
}
printf( "%d\r\n", len );
return 0;
}
//最简单的方法就是,根本就不需要存储字符串,直接计算长度就可以了,也不需要动态的复杂的数据结构
#include <stdio.h>
int main()
{
char ch;
int n = 0;
int flag = 0;
while(1)
{
ch = getchar();
if(ch == '\n'){
break;
}
else if(ch != ' ')
{
if(flag == 0){
n = 0;
flag = 1;
}
n++;
}
else
{
flag = 0;
}
}
printf("%d\n", n);
return 0;
}
import sys for line in sys.stdin: a = line.split() print(len(a[-1]))
while True:
# 写代码前记得加限定条件
try:
in_str = input()
if len(in_str) > 5000&nbs***bsp;len(in_str) == 0:
raise Exception
last = in_str.strip().split(" ")[-1]
leng = len(last)
print(leng)
break
except Exception:
print("The length of str is invalid, please input it again!")