您的位置:首页 > 其它

题目1195:最长&最短文本

2015-07-06 23:20 239 查看
题目描述:
输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

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

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

样例输入:
hello
she
sorry
he


样例输出:
he
hello
sorry


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
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: