当前位置:主页 > 课程 > 正文

华为机试、面试题目

07-17 课程

  struct info {//记录出现的顺序,和次数

  int rank;

  int count;

  info(int rank, int count) {

  this->rank= rank;

  this->count= count;

  }

  };

  struct fullinfo {//一条完整的结果,字符串和次数

  string file;

  int rank;

  int count;

  fullinfo(string file, int rank, int count) {

  this->file= file;

  this->rank= rank;

  this->count= count;

  }

  };

  struct classcomp {//set的比较器

  bool operator()(const struct fullinfo& f1, const struct fullinfo& f2) {

  if (f1.count== f2.count)

  return f1.rank

  return f1.count>f2.count;

  }

  };

  typedef struct info INFO;

  typedef struct fullinfo FULLINFO;

  int main() {

  unordered_map record;

  unordered_map::iterator it;

  unordered_map::const_iterator itfind;

  set ret;

  set::iterator sit;

  string linestr;//一行输入

  string file;//文件名+行号

  int pos;//空格的位置

  int i=1;

  while (getline(cin, linestr)) {

  if (linestr.length()==0)

  break;

  pos =linestr.rfind("\\");

  file =linestr.substr(pos + 1);//拆分得到最后的filename和count

  itfind=record.find(file);//在map中查看是否已经有了该字符串,没有则插入,有则次数加1

  if (itfind== record.end()) {

  INFO tmpi(i, 1);

  record.insert(pair(file, tmpi));

  }

  else {

  INFO tmpi(itfind->second.rank, itfind->second.count + 1);

  record.erase(file);

  record.insert(pair(file, tmpi));

  }

  i++;

  }

  for (it=record.begin();it !=record.end();it++) {

  FULLINFO tmpfull(it->first, it->second.rank, it->second.count);//构建排序的set集合

  ret.insert(tmpfull);

  }

  for (i=0, sit=ret.begin();sit !=ret.end() && i<8;++sit, ++i) {//最多输出8条记录,file少于16位

  if (file.find(" ") <=16) {

  cout << (*sit).file << " " << (*sit).count << endl;

  }

  else {

  cout << (*sit).file.substr(file.find(" ") - 16) << " " << (*sit).count << endl;

  }

  }

  return 0;

  }

版权保护: 本文由 主页 原创,转载请保留链接: http://www.tenglefood.com/a/kc/20200717-9.html

  • 上一篇:没有了
  • 下一篇:没有了
博客主人沙巴体育app
沙巴体育专业级彩票垂直网站,沙巴体育强大的足球赔率、足球直播和足球比分直播与比赛同步,沙巴体育将以客户的满意最至高宗旨,一个让您拥有宾至如归的服务之家!
  • 文章总数
  • 944访问次数
  • 建站天数
  • 推荐文章

    热门文章

    标签

    友情链接