1 条题解

  • 0
    @ 2026-1-30 14:22:19
    #include<bits/stdc++.h>
    using namespace std;
    
    // [1] 定义数组存储分割后的单词,临时字符串c用于读取单个单词,x记录单词总数
    string s[300],c; 
    int x=0;
    
    int main() {
        // [2] 循环读取输入的每个单词(cin默认以空格/换行分隔输入),存入数组s并计数
        while(cin>>c){
            s[x++]=c;
        }
    
        // [3] 初始化最长、最短单词为第一个单词,对应的长度也初始化为第一个单词的长度
        string max_s=s[0],min_s=s[0];
        int max_len=s[0].size(),min_len=s[0].size();
    
        // [4] 从最后一个单词向前遍历数组,更新最长和最短单词(长度相同时,保留后出现的单词)
        for(int i=x-1;i>=0;i--){
            int len=s[i].size(); // 记录当前单词的长度
            if(len>=max_len){ // 当前单词长度≥已记录最长长度时,更新最长信息
                max_len=len;
                max_s=s[i];
            }
            if(len<=min_len){ // 当前单词长度≤已记录最短长度时,更新最短信息
                min_len=len;
                min_s=s[i];
            }
        }
    
        // [5] 输出最长单词和最短单词,各占一行
        cout<<max_s<<endl<<min_s;
        return 0;
    }
    
    • 1

    信息

    ID
    1206
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者