最长最短单词

最长最短单词

      • C语言实现
      • C++实现
      • Java实现
      • Python实现


💐The Begin💐点点关注,收藏不迷路💐

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。

输入

一行句子。

输出

第1行,第一个最长的单词。
第2行,第一个最短的单词。

样例输入

I am studying Programming language C in Peking University

样例输出

Programming
I

C语言实现

#include <stdio.h>
#include <string.h>
#include <ctype.h>#define MAX_LENGTH 200 * 100  // 考虑句子最多200个单词,每个单词最长100字符,预留足够空间int main() {char sentence[MAX_LENGTH];  // 存储输入的句子fgets(sentence, MAX_LENGTH, stdin);  // 从标准输入读取句子,包含换行符int len = strlen(sentence);if (len > 0 && sentence[len - 1] == '\n') {  // 去除换行符sentence[len - 1] = '\0';}char longest_word[100];  // 存储最长的单词char shortest_word[100];  // 存储最短的单词strcpy(longest_word, "");  // 初始化为空字符串strcpy(shortest_word, "");  // 初始化为空字符串int current_word_start = 0;  // 当前单词开始的位置int current_word_length = 0;  // 当前单词的长度int max_length = 0;  // 记录最长单词长度int min_length = 100;  // 初始设为一个较大值,方便比较找最短单词for (int i = 0; i < len; i++) {if (isalpha(sentence[i])) {  // 如果是字母,说明在单词内current_word_length++;} else if (sentence[i] =='' || sentence[i] == ',') {  // 如果是间隔符号,说明单词结束if (current_word_length > max_length) {  // 判断是否是目前最长的单词max_length = current_word_length;strncpy(longest_word, sentence + current_word_start, current_word_length);longest_word[current_word_length] = '\0';}if (current_word_length < min_length && current_word_length > 0) {  // 判断是否是目前最短的单词且长度大于0min_length = current_word_length;strncpy(shortest_word, sentence + current_word_start, current_word_length);shortest_word[current_word_length] = '\0';}current_word_start = i + 1;  // 更新下一个单词开始的位置current_word_length = 0;  // 重置当前单词长度}}// 处理最后一个单词的情况(因为循环结束时没处理最后一个单词结束的情况)if (current_word_length > max_length) {max_length = current_word_length;strncpy(longest_word, sentence + current_word_start, current_word_length);longest_word[current_word_length] = '\0';}if (current_word_length < min_length && current_word_length > 0) {min_length = current_word_length;strncpy(shortest_word, sentence + current_word_start, current_word_length);shortest_word[current_word_length] = '\0';}printf("%s\n", longest_word);printf("%s\n", shortest_word);return 0;
}

C++实现

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;int main() {string sentence;getline(cin, sentence);  // 从标准输入读取句子,自动去除换行符string longest_word;  // 存储最长的单词string shortest_word;  // 存储最短的单词longest_word = "";  // 初始化为空字符串shortest_word = "";  // 初始化为空字符串stringstream ss(sentence);  // 创建stringstream对象,用于分割句子string current_word;int max_length = 0;  // 记录最长单词长度int min_length = 100;  // 初始设为一个较大值,方便比较找最短单词while (ss >> current_word) {  // 从stringstream中按空格或逗号分割读取单词int length = current_word.length();if (length > max_length) {  // 判断是否是目前最长的单词max_length = length;longest_word = current_word;}if (length < min_length && length > 0) {  // 判断是否是目前最短的单词且长度大于0min_length = length;shortest_word = current_word;}}cout << longest_word << endl;cout << shortest_word << endl;return 0;
}

Java实现

import java.util.Scanner;public class LongestAndShortestWord {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String sentence = scanner.nextLine();  // 从标准输入读取句子String longestWord = "";  // 存储最长的单词String shortestWord = "";  // 存储最短的单词int maxLength = 0;  // 记录最长单词长度int minLength = 100;  // 初始设为一个较大值,方便比较找最短单词String[] words = sentence.split("[,\\s]+");  // 按空格或逗号分割句子得到单词数组for (String word : words) {int length = word.length();if (length > maxLength) {  // 判断是否是目前最长的单词maxLength = length;longestWord = word;}if (length < minLength && length > 0) {  // 判断是否是目前最短的单词且长度大于0minLength = length;shortestWord = word;}}System.out.println(longestWord);System.out.println(shortestWord);scanner.close();}
}

Python实现

sentence = input()  # 从标准输入读取句子words = sentence.split()  # 以空格为分隔符将句子分割成单词列表longest_word = ""  # 存储最长的单词
shortest_word = ""  # 存储最短的单词for word in words:word = word.strip(",")  # 去除单词两端可能存在的逗号length = len(word)if length > len(longest_word):  # 判断是否是目前最长的单词longest_word = wordif length < len(shortest_word) or shortest_word == "":  # 判断是否是目前最短的单词shortest_word = wordprint(longest_word)
print(shortest_word)

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP32项目 --- 智能门锁(WiFi 蓝牙 OTA)

1 项目简介 1.1 项目概述 本项目是实现一款智能门锁中的智能控制部分, 可以应用在家庭, 办公室等任何使用门锁的场所. 本项目实现了以下主要功能: &#xff08;1&#xff09;通过按键配置密码 &#xff08;2&#xff09;通过按键输入密码开锁 &#xff08;3&#xff09;录…

【Qt】QTableView选中行发生变化时触发的信号

问题 QTableView选中的行发生变化时&#xff0c;使用的信号是QTableView的selectionModel()里的currentChanged信号&#xff0c;界面点击行来回切换&#xff0c;发现怎么也触发不了&#xff1f; 原因 信号槽连接放在了QTableView数据初始化前面&#xff0c;这时候QTableView…

洛谷题单-入门2-分支结构-python-下

找出出现的最早的最大值 count 0 list_number [] while True:list_number.append(list(map(int, input().split())))count 1if count 7:breaklist2_number_total []for i1,i2 in list_number:list2_number_total.append(i1i2)target max(list2_number_total)index 0 if…

Java Collections 深度探索

在 Java 编程中&#xff0c;java.util.Collections是一个非常重要的工具类&#xff0c;它提供了一系列对集合进行操作的静态方法。本文将深入探讨 Java Collections 的功能、用法、优势以及在实际编程中的应用。 一、引言 Java Collections 框架为开发者提供了一套强大而灵活…

Taro小程序开发随记

处理taro小程序显示wangeditor内的a标签跳转 Taro.options.html.transformElement (el) > {if (el.props.class h5-a) {el.__handlers.tap [() > toWebView(el.props.href)]}return el } 处理wangeditor富文本内容中图片视频到小程序中展示问题 <view class&qu…

Pytorch使用手册-What is torch.nn really?(专题九)

我们建议将本教程作为 notebook 而不是脚本运行。要下载 notebook(.ipynb)文件,请点击页面顶部的链接。 PyTorch 提供了精心设计的模块和类,如 torch.nn、torch.optim、Dataset 和 DataLoader,帮助你创建和训练神经网络。为了充分利用这些工具的强大功能并根据你的问题进…

框架模块说明 #05 权限管理_03

背景 权限设计可以分为两个主要方面&#xff1a;操作权限和数据权限。前两篇文章已经详细介绍了操作权限的设计与实现&#xff0c;以及如何将其与菜单关联起来的具体方法。本篇将聚焦于数据权限&#xff0c;为您深入讲解相关的设计与实现方式。 全局开关 Value("${syst…

Linux网络编程之---多线程实现并发服务器

下面我们来使用tcp集合多线程实现并发服务器 一.服务端 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>typedef struct sockinfo {char ip[16];unsigne…

二分查找!

问题描述 小明在图书馆借阅书籍&#xff0c;图书馆的书籍在系统中按序号顺次排列&#xff0c;小明在借阅后&#xff0c;需在系统中从“在馆书籍列表”中将该书删除。请帮助小明编写一个函数&#xff0c;在现有列表{1, 3, 5, 6, 7, 10, 12, 14, 26, 32, 35, 39, 42, 45, 54, 56…

按vue组件实例类型实现非侵入式国际化多语言翻译

#vue3##国际化##本地化##international# web界面国际化&#xff0c;I18N&#xff08;Internationalization&#xff0c;国际化&#xff09;&#xff0c;I11L(International&#xff0c;英特纳雄耐尔)&#xff0c;L10N&#xff08;Localization&#xff0c;本地化&#xff09;&…

Linux C/C++编程之静态库

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 (jd.com…

网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)

网际协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;&#xff0c;又称互联网协议。是OSI中的网络层通信协议&#xff0c;用于跨网络边界分组交换。它的路由功能实现了互联互通&#xff0c;并从本质上建立了互联网。网际协议IP是 TCP/IP 体系中两个最主要的协议之…

flutter 多语言 国际化 flutter Intl的使用方法

一使用 flutter Intl Android studio需要添加插件 flutter Intl 路径 File>>Settings>>Plugins>>Marketplace>>flutter Intl>>Install 安装插件重新启动Android studio Android studio 创建一个flutter测试的新项目 在项目文件中配置 ** 添加…

uniapp实现加密Token并在每次请求前动态更新(vue、微信小程序、原生js也通用!)

导语&#xff1a;在Web开发中&#xff0c;Token作为一种身份验证的机制&#xff0c;被广泛应用于前后端交互过程中。本文将为大家介绍如何在每次请求前动态设置加密的Token&#xff0c;并在请求一次后使Token值加1&#xff08;或其他动态改变的逻辑&#xff09;&#xff0c;从而…

IDL学习笔记(二)IDL处理卫星数据

IDL处理卫星数据 HDF文件数据集属性通用属性 常用HDF4操作函数常用的HDF5操作函数读取HDF文件的一般步骤 HDF4文件读取-----数据信息查询HDF4文件读取示例-----目标数据TIFF输出 HDF文件 数据集属性 数据集名称&#xff0c;是“&#xff1a;”前的一部分&#xff0c;不是long_…

论文阅读——量子退火Experimental signature of programmable quantum annealing

摘要&#xff1a;量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明&#xff0c;在理想化的封闭系统条件下&#xff0c;量子退火可以胜过基于经典热化的算法&#xff08;例如模拟退火&#xff09;。当前设计的量子退火装置的退相干时间比绝热演…

TCP/IP协议簇自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记&#xff0c;当前清理空间&#xff0c;本来想直接删除掉的&#xff0c;但是感觉有些舍不得&#xff0c;因此先搬移过来。 曾经&#xff0c;我只知道socket函数能进行网络间数据的通信&#xff0c;知道tcp/ip协议也是用来进行网络数据…

JAVA OPCUA 服务端开发,客户端连接会话监听和订阅事件监听

前言 关于使用milo开源库,开发opc ua服务器,有网友咨询如何设置服务端如何监听客户端的连接或断开事件,如何监听客户端发起订阅事件的代码实现,于是我完善了这部分的空缺整理整了这篇教程,希望能解决有同样需求,但是遇到困难的网友!因为milo没有官方文档的教程且网上详…

三数之和 Leecode 2024/12/02

思路&#xff1a;1. 找到所有不重复下标的整数组合。2. 在所有组合中找到和为0的组。 暴力解法超时&#xff01;&#xff01;&#xff01; public static List<List<Integer>> threeSum(int[] nums) {int num_len nums.length;HashSet<List<Integer>&g…

c++领域展开第一幕——入门基础(命名空间、iostream、缺省参数、函数重载、nullptr、inline(内联函数))超详细!!!!

文章目录 前言一、c的第一个程序二、命名空间2.1 namespace 的价值2.2 namespace 的定义2.3 命名空间的使用 三、c的输入和输出四、缺省参数五、函数重载六、nullptr七、inline总结 前言 今天小编带着大家进入c的大门&#xff0c;虽然c难&#xff0c;但好事多磨&#xff0c;一起…