题目1195:最长&最短文本

来源:互联网 发布:xalhar哈萨克音乐软件 编辑:程序博客网 时间:2024/05/01 18:11
题目描述:

    输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

输入:

输入包括多行字符串,字符串的长度len,(1<=len<=1000)。

输出:

按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

样例输入:
helloshesorryhe
样例输出:
hehellosorry


C++代码:

 #include <stdio.h>    #include <stdlib.h>    #include <string.h>     struct text    {            char name[1001];            unsigned int len;    };     int main()    {            struct text texts[1000];            unsigned int max, min, i, j;             //接收数据            for(i = 0; scanf("%s", texts[i].name) != EOF; i ++)            {                    texts[i].len = strlen(texts[i].name);                    if(i == 0)                    {                            max = min = texts[i].len;                    }else                    {                            if(texts[i].len > max)                            {                                    max = texts[i].len;                            }else if(texts[i].len < min)                            {                                    min = texts[i].len;                            }                    }            }              //打印输出            for(j = 0; j < i; j ++)            {                    if(texts[j].len == min)                            printf("%s\n", texts[j].name);            }            for(j = 0; j < i; j ++)            {                    if(texts[j].len == max)                            printf("%s\n", texts[j].name);            }           return 1;    }/**************************************************************    Problem: 1195    User: Carvin    Language: C++    Result: Accepted    Time:10 ms    Memory:1936 kb****************************************************************/

C++代码2:

 #include<iostream>    #include<string>    #include<vector>    using namespace std;    int main()    {            vector<string> svec;            string str;            while(cin >> str, !cin.eof())                    svec.push_back(str);            int i,min,max,n=svec.size();            min=max=svec[0].size();            for(i=1;i<n;i++)            {                    if(svec[i].size()<min)                         min=svec[i].size();                    if(svec[i].size()>max)                         max=svec[i].size();            }            for(i=0;i<n;i++)            {                    if(svec[i].size()==min)                         cout<<svec[i]<<endl;            }            if(max==min)                return 0;            for(i=0;i<n;i++)            {                    if(svec[i].size()==max)                         cout<<svec[i]<<endl;            }            return 1;    }/**************************************************************    Problem: 1195    User: Carvin    Language: C++    Result: Accepted    Time:40 ms    Memory:2180 kb****************************************************************/


Java代码:

import java.util.LinkedList;import java.util.Scanner;import java.util.Vector;import java.util.List;import java.util.ListIterator;public class Main{         public static void main(String [] args) throws Exception{                   Scanner in = new Scanner(System.in);                     StringBuffer sbl = new StringBuffer();                    StringBuffer sbs = new StringBuffer();                    int max,min;                    String str = in.next();                    max = min = str.length();                    sbl.append(str+"\n");                    sbs.append(str+"\n");                                        while(in.hasNext()){                            str = in.next();                            int len = str.length();                            if(len>max){                                     max = len;                                     sbl = new StringBuffer();                                     sbl.append(str+"\n");                            }else if(len == max){                                    sbl.append(str+"\n");                            }else if(len<min){                                     min = len;                                     sbs = new StringBuffer();                                     sbs.append(str+"\n");                            }else if(len == min){                                    sbs.append(str+"\n");                            }                                                 }//while                                                                System.out.print(sbs.toString()+sbl.toString());    }               }/**************************************************************    Problem: 1195    User: Carvin    Language: Java    Result: Accepted    Time:340 ms    Memory:25472 kb****************************************************************/



1 0
原创粉丝点击