NOI openjudge 1.7编程基础之字符串 24单词的长度

最近小编在刷NOI openjudge,看到了这样一道题:

24:单词的长度

描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。

注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。

输入
一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。
输出
依次输出对应单词的长度,之间以逗号间隔。
样例输入
She was born in 1990-01-02 and from Beijing city.
样例输出
3,3,4,2,10,3,4,7,5

这道题我们可以用C++/Python做出来,下面是我做的。

C++:

#include <iostream>
#include <cstring>
using namespace std;
int main(){
    
    
	char s[1000];
	int cnt = 0;
	gets(s);//直接输入(带空格)
	s[strlen(s)] = ' ';
	for(int i = 0;i < strlen(s);i++){
    
    
		if(s[i] != ' ') cnt++;//如果不是空格,则说明这个单词还有新字母,长度增加
		else{
    
    //遇到空格
			if(s[i + 1] != ' '){
    
    //判断后面的字符是不是空格,避免输出多余的0
				if(i == strlen(s) - 1) cout << cnt;//是最后一个单词的话输出不带逗号的单词长度
				else cout << cnt << ',';//否则输出带有逗号的长度
				cnt = 0;
			}
		}
	}
	return 0;
} 

Python:

a = input().split()#以空格分隔输入的句子,存成list形式。
for i in range(len(a)):#遍历列表
    if i != len(a) - 1:#如果不是最后一个单词,输出当前单词的长度加一个逗号
        print(len(a[i]),end=',')
    else:#如果是最后一个单词,输出它的长度不加逗号
        print(len(a[i]))

猜你喜欢

转载自blog.csdn.net/MRH0420/article/details/113744455