最长最短单词

news2024/12/26 21:17:13

最长最短单词

      • 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) {  // 判断是否是目前最短的单词且长度大于0
                min_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) {  // 判断是否是目前最短的单词且长度大于0
            min_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) {  // 判断是否是目前最短的单词且长度大于0
                minLength = 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 = word
    if length < len(shortest_word) or shortest_word == "":  # 判断是否是目前最短的单词
        shortest_word = word

print(longest_word)
print(shortest_word)

在这里插入图片描述


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

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

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

相关文章

C++【PCL】点云数据平移 旋转,对点云进行刚体变化

//头文件 #include <iostream>#include <pcl/point_cloud.h>#include<pcl/io/pcd_io.h>#include <pcl/common/transforms.h> #include <pcl/io/ply_io.h>//主函数int main() {pcl::PointCloud<pcl::PointXYZ>::Ptr source_cloud(new pcl::…

2024第六届金盾信安杯Web 详细题解

比赛一共4道Web题,比赛时只做出三道,那道文件上传没有做出来,所以这里是另外三道题的WP 分别是 fillllll_put hoverfly ssrf fillllll_put 涉及: 绕过exit() 死亡函数 php://filter 伪协议配合base64加解密 一句话木马 题目源码&#xff1a; $content参数在开头被…

006 MATLAB编程基础

01 M文件 MATLAB输入命令有两种方法&#xff1a; 一是在MATLAB主窗口逐行输入命令&#xff0c;每个命令之间用分号或逗号分隔&#xff0c;每行可包含多个命令。 二是将命令组织成一个命令语句文集&#xff0c;使用扩展名“.m”&#xff0c;称为M文件。它由一系列的命令和语句…

Delphi Web前端开发教程(9):基于TMS WEB Core框架

3、REST Servers服务端(后端)框架 REST服务端特点&#xff1a; – 为远程资源提供一个REST API接口。也可以为其他网络内容提供服务&#xff1b; – 包括在Delphi Enterprise & Architect企业版和架构师版中的RAD服务器、DataSnap、WebBroker&#xff1b; – 开源框架&a…

SPC三种判定准则的算法

1.连续6个点递增或递减 //传入数据列表 //返回连续X个及以上递增或递减的数组下标int n = array.Length; int X = X_in; List<int> regions_start = new List<int>(); List<int> regions_end = new List<int>();if(Open){for (int i = 0; i < n - (…

AI一键生成原创圣诞印花图案

一、引言 随着科技的飞速发展&#xff0c;AI 已经深入到我们生活和工作的各个角落&#xff0c;为创意设计领域带来了前所未有的变革。在圣诞即将来临之际&#xff0c;想要设计独特的圣诞印花图案却又担心缺乏灵感或专业技能&#xff1f;别担心&#xff0c;千鹿 AI 为我们提供了…

Ubuntu的pip怎么用

第一步&#xff1a;查看python3版本 第二步&#xff1a;安装pip 第三步&#xff1a;可以尝试使用pip list查看 也可以尝试安装 下面这条命令可以设置永久源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

基于Matlab三点雨流计数法的载荷时间历程分析与循环疲劳评估

随着工程领域中机械设备和结构系统的复杂性不断增加&#xff0c;疲劳分析成为评估其可靠性与使用寿命的关键环节。载荷时间历程数据在疲劳分析中扮演着重要角色&#xff0c;而雨流计数法作为经典的循环计数方法&#xff0c;能够有效地从载荷时间历程中提取疲劳载荷循环信息。本…

帝可得-策略管理

策略管理 需求说明 策略管理主要涉及到二个功能模块&#xff0c;业务流程如下&#xff1a; 新增策略: 允许管理员定义新的策略&#xff0c;包括策略的具体内容和参数&#xff08;如折扣率&#xff09;策略分配: 将策略分配给一个或多个售货机。 #mermaid-svg-PSQOJMLJqVGn3W…

【数据结构】手搓链表

一、定义 typedef struct node_s {int _data;struct node_s *_next; } node_t;typedef struct list_s {node_t *_head;node_t *_tail; } list_t;节点结构体&#xff08;node_s&#xff09;&#xff1a; int _data;存储节点中的数据struct node_s *_next;&#xff1a;指向 node…

嵌入式 C 编程必备(7):const 关键字 —— 打造稳定的常量空间

目录 一、const关键字的基本含义与用法 1.1. 修饰基本数据类型 1.2. 修饰指针 1.3. 修饰数组 1.4. 修饰结构体 二、const关键字在嵌入式编程中的优势 2.1. 提升代码可读性 2.2. 增强代码安全性 2.3. 优化内存使用 2.4. 促进模块化设计 2.5. 支持静态分析和测试 三、…

Day28 买卖股票的最佳时机 跳跃游戏 跳跃游戏 II K 次取反后最大化的数组和

贪心算法 part02 122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 求最大利润 将每天的正利润加和 public int maxProfit(int[] prices) {int totalPrices 0;for(int i0;i<prices.length;i){if(i<prices.length-1&&prices[i1]>prices[…

【专题】计算机网络之运输层(传输层)

1. 运输层协议概述 1.1 进程之间的通信 (1) 运输层的作用 运输层提供进程间的逻辑通信。 运输层的屏蔽作用&#xff1a; 运输层向高层用户屏蔽了下面网络核心的细节&#xff08;如网络拓扑、所采用的路由选择协议等&#xff09;&#xff0c;使应用进程看见的就是好像在两个运…

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…

matlab 中的 bug

在matlab中绘图&#xff0c;设置 axe 的背景颜色 axes_in3.Color #00235B ;打印的时候 print(figure_handle1,-dpng,-r300,"merge_yt_ey") ;此时保存的图片无法识别背景颜色 原因在于 matlab 中的 InverseHardcopy 将 InvertHardcopy 设置成 off 则可以解决这个问…

利用Python爬虫快速获取淘宝/天猫SKU详细信息数据

引言 在当今的电商环境中&#xff0c;获取商品的详细信息对于市场分析和竞争策略至关重要。阿里作为中国最大的电商平台&#xff0c;拥有海量的商品数据。本文将介绍如何利用Python编写爬虫程序&#xff0c;快速获取商品的SKU详细信息数据&#xff0c;并提供相应的代码示例。 …

R语言机器学习论文(二):数据准备

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据一、数据描述二、数据预处理(一)修改元素名称(二)剔除无关变量(三)缺失值检查(四)重复值检查(五)异常值检查三、描述性统计(一)连续变量数据情…

基于图像变化检测的毁伤效果评估——学习笔记

前言 闲的无聊&#xff0c;看看论文。 基本评估步骤 第一步&#xff1a;图像预处理。通过图像配准、不同波段提取、图像校正、图像滤波等手段&#xff0c;统一图像格式&#xff08;文中统一为灰度图&#xff09;&#xff0c;得到待检测图像&#xff1b; 第二步&#xff1a;…

A1228 php+Mysql旅游供需平台的设计与实现 导游接单 旅游订单 旅游分享网站 thinkphp框架 源码 配置 文档 全套资料

旅游供需平台 1.项目描述2. 开发背景与意义3.项目功能4.界面展示5.源码获取 1.项目描述 随着社会经济的快速发展&#xff0c;生活水平的提高&#xff0c;人们对旅游的需求日益增强&#xff0c;因此&#xff0c;为给用户提供一个便利的查看导游信息&#xff0c;进行导游招募的平…

青海摇摇了3天,技术退步明显.......

最近快手上的青海摇招聘活动非常火热&#xff0c;我已经在思考是否备战张诗尧的秋招活动。开个玩笑正片开始&#xff1a; 先说一下自己的情况&#xff0c;大专生&#xff0c;20年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c…