top1编程
← 返回题目
题解

最长最短单词

1 条题解

  • 0
    @ 2026-7-28 23:26:29
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	string s,sum="",maxs="",mins="";
    	//maxs最大字符串  mins是最小字符串 sum是当前的单词 
    	getline(cin,s);
    	int ss=0,maxl=0,minl=INT_MAX;
    	//ss代表目前输入单词的长度
        int lens=s.size();
    	for(int i=0;i<lens;i++){
    		if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')){//是字母
    			ss++;
    			//进行拼接,把输入的字母拼接到数组s
    			sum+=s[i];
    		}
    		else{
    			if(ss>maxl){ //记录最大单词 
    				maxs=sum;
    				maxl=ss; //最大长度 
    			}
                //sum!="",避免开头是空格的情况
    			if(ss<minl&&sum!=""){ //记录最小单词 
    				mins=sum;
    				minl=ss; //最小长度 
    			}
    			ss=0; //清空当前数量
    			sum=""; //将sum里面的单词清空
    		} 
    	}
    	cout<<maxs<<endl<<mins;
    }
    
    • 1