信奥赛一本通1142:单词的长度

简介: 【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。【输入】一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。【输出】依次输出对应单词的长度,之间以逗号间隔。

【题目描述】

输入一行单词序列,相邻单词之间由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++:
#include<iostream>
using namespace std;
int main()
{
    string s;            //string可以直接输入字符串
    getline(cin,s);      //getline可以输入含空格的字符串
    int count=0;         //计算每个单词的长度
    for(int i=0;i<s.length();i++)      //遍历每个字符
    {
        count++;                      //每次遍历直接先计数+1
        if(s[i]==' ')                 //如果该字符是空格的话
        {
            count--;                   //计数减1因为空格不包含进去
            if(count!=0)               //如果计数不为0的话就输出
                cout<<count<<",";
            count=0;                     //然后计数归0
        } 
    }  
    cout<<count<<endl;                   //因为最后一个单词后面没有空格所以在遍历结束后输出
}
C语言:
#include<stdio.h>
int main()
{
    char s[1001];
    gets(s);
    int count=0;
    for(int i=0;i<strlen(s);i++)
    {
        count++;
        if(s[i]==' ')
        {
            count--;
            if(count!=0)
                printf("%d,",count);
            count=0;
        } 
    }
    printf("%d",count);
}

注:现在的信奥赛一本通不支持C语言中的gets输入直接获取字符串,因为其安全性不高,C语言中使用fgets(s,n,stdin)来从输入缓冲区中读取字符,其中s为字符数组变量名,n为长度,stdin为输入缓冲区

相关文章
|
1月前
|
算法 前端开发 数据处理
小白学python-深入解析一位字符判定算法
小白学python-深入解析一位字符判定算法
47 0
|
6月前
|
算法
算法编程(二十五):检查单词是否为句中其他单词的前缀
算法编程(二十五):检查单词是否为句中其他单词的前缀
62 0
|
6月前
|
存储 自然语言处理 算法
算法编程(十九):词典中最长的单词
算法编程(十九):词典中最长的单词
71 0
|
5月前
|
算法
力扣经典150题第十九题:最后一个单词的长度
力扣经典150题第十九题:最后一个单词的长度
30 0
|
6月前
|
测试技术
【错题集-编程题】添加字符(字符串)
【错题集-编程题】添加字符(字符串)
|
存储 Cloud Native Go
【刷题日记】1455. 检查单词是否为句中其他单词的前缀
【刷题日记】1455. 检查单词是否为句中其他单词的前缀
108 1
|
Cloud Native
【刷题日记】30. 串联所有单词的子串
本次刷题日记的第 75篇,力扣题为:30. 串联所有单词的子串 ,困难
|
存储 算法 索引
【算法挨揍日记】day07——904. 水果成篮、438. 找到字符串中所有字母异位词
题目描述: 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了
350 0
|
算法 索引
【算法挨揍日记】day08——30. 串联所有单词的子串、76. 最小覆盖子串
给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words = [&quot;ab&quot;,&quot;cd&quot;,&quot;ef&quot;], 那么 &quot;abcdef&quot;, &quot;abefcd&quot;,&quot;cdabef&quot;, &quot;cdefab&quot;,&quot;efabcd&quot;, 和 &quot;efcdab&quot; 都是串联子串。 &quot;acdbef&quot; 不是串联子串,因为他不是任何 words 排列的连接。
387 0
|
算法 测试技术
蓝桥算法_单词分析-wordAnalysis
蓝桥算法_单词分析-wordAnalysis