2016去哪网笔试题一

 

自己写的代码,供大家参考一下

#include <iostream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
//#include <cstdio.h>
#include <string>
#include <map>
 
using namespace std;
 
 
 
 
 
 
struct kenerl
{
 int major;
 int mirror;
 int level;
};
 
 
kenerl getKernel(string str)
{
 int len = str.length();
 int i = 0;
 vector<int> temp(3,-1);
 int index = 0;
 while (i<len)
 {
  int number = 0;
  while(i<len && str[i]!='.')
  {
      number= number*10+ (str[i]-'0');
 
   i++;
  }
  temp[index]= number;
  index++;
  i++;
 }
 kenerl res;
 res.major = temp[0];
 res.mirror = temp[1];
 res.level = temp[2];
 return res;
 
}
 
int main()
{
 
 
 int n;
 cin>>n;
 vector<string> dict;
 if (n==0)
 {
  cout<<"no stable available"<<endl;
  return 0;
 }
 
 for (int i = 0; i<= n;i++)
 {
  string buf;
  getline(cin,buf);
  //cout<<buf<<endl;
  dict.push_back(buf);
 
 }
 
 /*map<int,vector<kenerl>> dictKenerl;*/
 kenerl maxKenerl;
 maxKenerl.major = -1;
 maxKenerl.mirror = -1 ;
 maxKenerl.level = -1;
 for (int i =1;i<dict.size();i++)
 {
  string temp = dict[i];
  kenerl num = getKernel(temp);
  if (num.mirror%2==0)//mirror 2
  {
   if (num.major>maxKenerl.major)//
   {
    maxKenerl = num;
 
   }else if (num.major == maxKenerl.major)
   {
    if (num.mirror>maxKenerl.mirror)
    {
     maxKenerl = num;
    }else if(num.mirror == maxKenerl.mirror)
    {
     if (num.level>=maxKenerl.level)
     {
      maxKenerl = num;
     }
   
    }else
    {
    //xiaoyu
    }
 
   }
   else
   {
   //xiaoyu
   }
  }
 
 }
 //string res;
 //int nTemp =0;
 //std::stringstream ss;
 //string strTest;
 
 if (maxKenerl.major >0)
 {
  cout<<maxKenerl.major;
 }
 if (maxKenerl.mirror>0)
 {
  cout<<"."<<maxKenerl.mirror;
 }
 
 if (maxKenerl.level>0)
 {
  cout<<"."<<maxKenerl.level;
 }
 
 if (maxKenerl.major == -1 && maxKenerl.level ==-1 && maxKenerl.mirror ==-1)
 {
  cout<<"no stable available"<<endl;
 }
 cout<<endl;
 system("pause");
 return 0;
}

 

转载于:https://www.cnblogs.com/lishichao/p/4829377.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值