B2120 单词的长度
单词的长度
题目描述
输入一行单词序列,相邻单词之间由 1 1 1 个或多个空格间隔,请对应地计算各个单词的长度。
注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。
输入格式
一行单词序列,最少 1 1 1 个单词,最多 300 300 300 个单词,单词之间用至少 1 1 1 个空格间隔。单词序列总长度不超过 1000 1000 1000。
输出格式
依次输出对应单词的长度,之间以逗号间隔。
样例 #1
样例输入 #1
She was born in 1990-01-02 and from Beijing city.
样例输出 #1
3,3,4,2,10,3,4,7,5
方法1
解题思路:
本题要求我们计算一行单词序列中每个单词的长度,并以逗号分隔输出。我们可以按照以下步骤解决:
- 读取一行单词序列。
- 使用字符串流(istringstream)将单词序列分割为单个单词。
- 遍历每个单词,计算其长度,并输出长度值。
- 在输出长度值之间以逗号分隔,注意最后一个长度值后不需要逗号。
C++代码:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;int main() {string line;getline(cin, line);istringstream iss(line);string word;int wordCount = 0;while (iss >> word) {if (wordCount > 0) {cout << ",";}cout << word.length();wordCount++;}cout << endl;return 0;
}
代码解释:
1 . 首先,我们使用getline函数读取一行单词序列,并将其存储在字符串line中。
2 . 接下来,我们创建一个字符串流对象iss,并将line传递给它。这样,我们就可以使用iss来分割单词序列。
3 . 然后,我们定义一个字符串变量word用于存储每个单词,以及一个整型变量wordCount用于记录已处理的单词数量。
4 . 我们使用while循环和iss >> word语句从字符串流中读取单词。每次读取一个单词,直到读取完所有单词为止。
5 . 在循环内部,我们首先判断wordCount是否大于0。如果大于0,说明当前单词不是第一个单词,我们输出一个逗号,作为分隔符。
6 . 然后,我们使用word.length()计算当前单词的长度,并将其输出。
7 . 将wordCount加1,表示已经处理了一个单词。
8 . 循环结束后,我们输出一个换行符,以便结果在新的一行显示。
复杂度分析:
- 时间复杂度:O(n),其中n为单词序列的总长度。我们需要遍历整个单词序列一次。
- 空间复杂度:O(n),其中n为单词序列的总长度。我们需要使用字符串流来存储单词序列,以及临时存储每个单词。
输入输出样例:
输入:
She was born in 1990-01-02 and from Beijing city.
输出:
3,3,4,2,10,3,4,7,5
该解决方案与之前的解决方案类似,只是将布尔变量first替换为整型变量wordCount来判断是否为第一个单词。通过使用wordCount,我们可以避免使用布尔值,而是通过单词数量来判断是否需要输出逗号分隔符。
方法2
解题思路:
本题要求我们计算一行单词序列中每个单词的长度,并以逗号分隔输出。我们可以按照以下步骤解决:
- 使用
cin直接读取单词,以空格为分隔符。 - 对于每个读取到的单词,计算其长度,并输出长度值。
- 在输出长度值之间以逗号分隔,注意最后一个长度值后不需要逗号。
C++代码:
#include <iostream>
#include <string>
using namespace std;int main() {string word;int wordCount = 0;while (cin >> word) {if (wordCount > 0) {cout << ",";}cout << word.length();wordCount++;}cout << endl;return 0;
}
代码解释:
1 . 首先,我们定义一个字符串变量 word 用于存储每个单词,以及一个整型变量 wordCount 用于记录已处理的单词数量。
2 . 我们使用 while 循环和 cin >> word 语句直接读取单词。每次读取一个单词,以空格为分隔符,直到读取完所有单词为止。
3 . 在循环内部,我们首先判断 wordCount 是否大于0。如果大于0,说明当前单词不是第一个单词,我们输出一个逗号 , 作为分隔符。
4 . 然后,我们使用 word.length() 计算当前单词的长度,并将其输出。
5 . 将 wordCount 加1,表示已经处理了一个单词。
6 . 循环结束后,我们输出一个换行符,以便结果在新的一行显示。
复杂度分析:
- 时间复杂度:O(n),其中n为单词序列的总长度。我们需要遍历整个单词序列一次。
- 空间复杂度:O(1)。我们只需要常数级别的额外空间来存储每个单词和单词数量。
输入输出样例:
输入:
She was born in 1990-01-02 and from Beijing city.
输出:
3,3,4,2,10,3,4,7,5
该解决方案直接使用 cin 读取单词,避免了使用字符串流分割单词的过程。通过 cin >> word,我们可以方便地读取以空格分隔的单词,并计算每个单词的长度。与之前的解决方案相比,该方法更加简洁直观。
需要注意的是,由于 cin 以空格为分隔符,所以连字符、逗号等标点符号会被视为单词的一部分,这符合题目要求。
如果还有任何问题或需要进一步的解释,请随时告诉我。
相关文章:
B2120 单词的长度
单词的长度 题目描述 输入一行单词序列,相邻单词之间由 1 1 1 个或多个空格间隔,请对应地计算各个单词的长度。 注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没…...
分布式事务解决方案(最终一致性【可靠消息解决方案】)
可靠消息最终一致性解决方案 可靠消息最终一致性分布式事务解决方案指的是事务的发起方执行完本地事务之后,发出一条消息,事务的参与方,也就是消息的消费者一定能够接收到这条消息并且处理完成,这个方案强调的是只要事务发起方将消…...
AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月28日预测第4弹
昨天的第二套方案已命中,第一套方案由于杀了对子,导致最终出错。 今天继续基于8883的大底,使用尽可能少的条件进行缩号,同时,同样准备两套方案,一套是我自己的条件进行缩号,另外一套是8883的大底…...
JAVA:深入了解JAVA中的23种设计模式(三)- 行为型模式(下)
一、前言 在前三篇 《深入了解JAVA中的23种设计模式(一)- 创建型模式》 《深入了解JAVA中的23种设计模式(二)- 结构型模式》 《深入了解JAVA中的23种设计模式(三)- 行为型模式(上)》…...
微信小程序【WXML】
wxml wei xin markup language 类似于html 文档 数据绑定 小程序中使用{{}} 来进行数据绑定到模板中,如: wxml中的动态数据全部来自js中的data 简单绑定 //wxml <view> {{text }}</view>// index.js Page({data: {text: hello world}, })属性绑定…...
基于python实现的深度学习的车牌识别系统
基于python实现的深度学习的车牌识别系统 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录页面 在车牌识别系统当中肯定是有登录的。怎么说呢,登录页面其实还是和最初的设…...
SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯
学⽣地理信息报告 学校有来⾃亚洲、欧洲和美洲的学⽣。 表countries 数据如下: namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica 1、编写解决⽅案实现对⼤洲(continent)列的 透视表 操作,使得每个学生 按照姓名的字⺟顺…...
kafka3.6.1版本学习
kafka目录结构 bin linux系统下可执行脚本文件 bin/windows windows系统下可执行脚本文件 config 配置文件 libs 依赖类库 licenses 许可信息 site-docs 文档 logs 服务日志 启动ZooKeeper 进入Kafka解压缩文件夹的config目录,修改zookeeper.properties配置文件 #t…...
移除链表元素-力扣
题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&…...
HTTP请求拦截器链
文章目录 HTTP请求拦截器链需求定义写一个Controller方法接口写三个http请求拦截器把拦截器加入到配置中,并且配置拦截规则在postman里面发送请求,看下测试结果是否正确 HTTP请求拦截器链 需求定义 我们写一个包含三个HTTP请求拦截器的拦截器链&#x…...
再创佳绩丨达梦数据库一体机荣获2024数字中国创新大赛·信创赛道总决赛一等奖
5月24日,第七届数字中国建设峰会在福州盛大开幕,峰会内容安排包含开幕式、主论坛、分论坛、数字中国创新大赛、现场体验区及成果发布和专业工作会议等。武汉达梦数据库股份有限公司(以下简称达梦数据)受邀参加并在展、会、赛等多个环节深度参与。达梦全栈…...
数据分析之统计学基础
数据分析是现代企业和科研中不可或缺的一部分,而统计学是数据分析的基石。在本篇博客中,我们将介绍统计学的基础知识,涵盖数据类型、描述性统计(集中趋势、离散程度和偏差程度),并通过代码实例加以说明。 …...
Web3 游戏周报(5.19 - 5.25)
【5.19 - 5.25】Web3 游戏行业动态: Arbitrum 已开启 “2 亿枚 ARB 游戏催化剂计划”的提案投票。 STEPN 在官方 X 宣布将推出全新社交健身应用 STEPN GO。 Oasys 正式推出《足球小将》漫改 Web3 游戏《Captain Tsubasa-RIVALS-》。 Gala Games :已销…...
通过el-tree自定义渲染网页版工作目录,实现鼠标悬浮显示完整名称、用icon区分文件和文件夹等需求
目录 一、通过el-tree自定义渲染网页版工作目录 1.1、需求介绍 1.2、使用el-tree生成文档目录 1.2.1、官方基础用法 ①效果 ②代码: 1.2.2、自定义文档目录(实现鼠标悬浮显示完整名称、用icon区分文件和文件夹) ①效果(直接效…...
C语言 | Leetcode C语言题解之第101题对称二叉树
题目: 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSymmetric(struct TreeNode* root) {if (root NULL) return true;//如果根为空直接…...
TTime:截图翻译/OCR
日常网页翻译Translate Web Pages完全足够,TTime最重要的功能,还是截图翻译,还有个厉害的功能,就是静默OCR,相比之前的分享的识字精灵效率更高。 软件使用 打开软件,点击翻译源设置,建议勾选一…...
【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(1)
🎉博主首页: 有趣的中国人 🎉专栏首页: C进阶 🎉其它专栏: C初阶 | Linux | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 哈希函数与哈希 之 闭散列的线性探测解决哈希冲突 的相关内容。 如…...
四川农业大学Java实训项目圆满收官,汇智知了堂引领学子实践创新
近日,四川农业大学与汇智知了堂共同举办的Java实训项目正式迎来了项目汇报阶段。本次实训是汇智知了堂在高等教育领域深化校企合作、推动产教融合的一次重要实践,旨在为广大学子提供一个将理论知识与实际操作相结合的平台。 在实训过程中,汇…...
JavaScript的当前时间设置及Date的运算
作者:私语茶馆 1.场景描述 如下图,在HTML刚加载时,需要将开始时间设置为默认当前时间,结束时间设置为当前时间后7天的时间。手工填写时间时,时间段不超过30天。 这里涉及到两个技术点: 1)Input Date的当前时间设置 2)date的运算 由于是动态修改HTML,所以采用…...
网络安全管理制度
一、总则 目的:本制度旨在保障组织内部网络系统的安全、稳定运行,保护组织的信息资产不受损害,确保业务的连续性和数据的完整性。适用范围:本制度适用于组织内部所有使用网络系统的部门、员工及第三方合作伙伴。 二、网络安全管理…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
