描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:
hello nowcoder
输出:
8
说明:
最后一个单词为nowcoder,长度为8
C语言解法:
#include <stdio.h>
#include <string.h>
int main() {
int a[5000] = {0};
int len = 0;
while(EOF != scanf("%s", &a))
{}
len = strlen(a);
printf("%d", len);
return 0;
}
注意:在nowcoder.com中测试用例最后输入的是EOF,因此可行,本地编译器输入的话需要手动输入EOF结尾
知识点:
①EOF是End Of File的缩写,表示“文件结束”。windows平台为ctrl+Z,linux平台是ctrl+D。
②每一次scanf对str都相当于重新读写,即会先初始化
Python3解法:
# -*- coding: UTF-8 -*-
import sys
str = input() # 输入字符串str
arr = str.split() # 以空格分割字符串并将结果存入数组arr
n = len(arr) - 1 # 获取数组最后一个元素的索引
print(len(arr[n])) # 打印最后一个元素arr[n]的长度即为最后一个单词的长度
知识点:
①Import sys
在c或C++中,头文件可以提供程序所需的各种函数和变量的定义,可被主程序或其他程序调用。Python中不存在头文件的概念,因为Python是动态语言,变量和函数不需要提前声明。在Python的程序中,可以直接引用其他库的函数或变量,而不需要显式的在程序中引入头文件。Import sys即引入sys模块,该模块包含了Python解释器和它的环境有关的函数。执行import sys时,它在sys.path变量中所列目标中寻找sys.py模块。
②python变量无需定义数据类型即可使用
Python变量是没有数据类型的,这是因为Python是动态类型语言,它不需要在声明变量时显式指定变量的类型。变量的类型是根据变量存储的值来确定的,因此变量可以改变其类型。
③input()函数
定义:接收一个标准输入数据
语法:input("提示的内容"),例如:name = input("请输入你的名字:")
返回值:string类型
补充:可与变量类型结合使用,进行强转,用于变量计算,例如:name = int(input("请输入你的名字:"))
④str.split(str="", num=string.count(str))函数
定义:Python split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔符num+1个子字符串。
语法:str.split(str="", num=string.count(str));str---分隔符,默认为所有的空字符串,包括空格、换行(\n),制表符(\t)等;num---分隔次数,默认为-1,即分隔所有。例如:str = "Hello#World!" str1 = str.split("#", 1)---以"#"为分割符,分割1次,分割程两个字符串
返回值:返回分割后的字符串列表
补充:len(list)---可以获取列表最后一个元素的索引
但有个疑问就是如果使用python2解释器,会提示SyntaxError: unexpected EOF while parsing,猜测是python3和python2中input函数有却别,但还没有找到确定的原因