这类题目几乎不需要数据结构,算法基础,主要通过简单的逻辑流程和判断实现。
题目描述如下:
大致题意:
题目理解起来较为容易,每一行有三个字符串,选出第二个字符串最小的行,输出该行的第一个字符串;然后选出第三个字符串最大的行,输出该行的第一个字符串。
大致思路:
可以创建一个结构体,用来存储一行的三个字符串,然后使用结构体数组来存储输入的每一行,在对结构体数组遍历的过程中,进行处理。
提交结果如下:
提交的代码如下:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
struct Node
{
string name;
string sigin;
string sigout;
};
int main()
{
int n;
cin>>n;
vector<Node> arr;
string max,min;
int in=0,out=0;
Node node;
cin>>node.name>>node.sigin>>node.sigout;
arr.push_back(node);
max=node.sigout;
min=node.sigin;
for(int i=1;i<n;i++)
{
Node node;
cin>>node.name>>node.sigin>>node.sigout;
arr.push_back(node);
if(max<node.sigout)
{
max=node.sigout;
out=i;
}
if(min>node.sigin)
{
min=node.sigin;
in=i;
}
}
cout<<arr[in].name<<" "<<arr[out].name<<endl;
}
本次提交后累计得分247,排名为20383。