(深信服笔试题)简单文本文件的过滤高频率单词C++代码

原创 2008年03月09日 08:07:00

这是深信服的一道笔试题,即要求扫描一文本文件,将出现频率最高的单词过滤。所以自己也写了个代码。本代码没有做“单词测试”,即没有测试是否一个字符串是一个单词。

题目没有要求针对相同频率单词的处理情况,所以我没有针对这个做处理,有兴趣的朋友可以自立要求。

 

#include <fstream>
#include <iostream>
#include <map>
using namespace
std;

void
clr_frc(string srcf, string desf)
{

    // 创建 单词->频率 计数表
    map<string, int> cnt;
    // ifstream要求原始C字符串,所以要将string转成c字符串作参数
    ifstream fin(srcf.c_str());
    string str;
    // 累计单词数量
    while (fin >> str) {
          ++
cnt[str];
    }

    // 初始化最大频率单词频率数
    int max = 0; // max frequant number
    string rsstr; // result string
    // 遍历计数表
    for (map<string, int>::iterator iter=cnt.begin();
        iter!=cnt.end(); ++iter) {
        if
(iter->second > max) {
           max = iter->second;
           rsstr = iter->first;
        }
    }

    // 输入文件因为读取到eof结束标记所以状态(state)...
    // 被作了标记eof状态,所以要将状态清空还原正常状态
    fin.clear();
    // 将文件指针指回文件首
    fin.seekg(0, ios::beg);
    // 创建输出文件流
    ofstream fout(desf.c_str());
    bool
first = true; // write the first word to file
    // 输出除频率最高单词外的其它单词
    while (fin >> str) {
          if
(str != rsstr) {
             if
(first) // it doesn't need space before the first word
                 first = false;
             else
fout << " ";
             fout << str;
          }
    }
}

int
main(int argv, char** args)
{

    clr_frc("file.txt", "modify.txt");
    getchar();
    return
0;
}

 

C/C++面试经验

(一)     C语言篇 C语言求职血泪史 华为(实习):机试、一面、性格测试被鄙视、优招被鄙视、普招被鄙视 锐捷:笔试、面试莫名其妙被鄙视 创新工场:笔试、一面、二面、offer 阿里巴巴...
  • xzgcbtxq
  • xzgcbtxq
  • 2014年09月20日 09:36
  • 761

深信服笔试题1

1  char   *p   =   "hello   world";       p存储在()  //堆栈     char   p[ ]   =   "hello   world";     p存...
  • ali_dongdong
  • ali_dongdong
  • 2017年08月25日 15:53
  • 1401

深信服软件测试笔试题

输入一行字符串,将其中的数字转换成由英文组成的字符串,每个英文单词用空格进行间隔,字符串长度小于等于10; 输入描述:一个字符串。 输出描述:数字对应的英文字符串。 示例: 输入:1230-a...
  • f15829107089
  • f15829107089
  • 2017年09月22日 11:05
  • 501

说说今天深信服的笔试吧

两年前,在自己刚刚成为一个大四狗的时候,看见了DJI来学校招聘。彼此自己接触了一些四旋翼无人机的内容,同时也是对DJI推崇的五体投地。于是无知的进入到了DJI的笔试场地,也是在正心,当时还给现场的每一...
  • u012925231
  • u012925231
  • 2016年09月15日 00:20
  • 3848

第一个offer-深信服&面试经验

出来混迟早还是要还的,这句话我是深深体会到了,也许是以前的三年时光不够努力吧,或许是没有重视成绩的原因,一些课程比如操作系统,网络原理,数据库专选没有选,学的不是很好,所以笔试面试bat京东都失败了。...
  • libi_rong
  • libi_rong
  • 2016年10月18日 23:54
  • 5268

深信服2018年实习生校园招聘总结

参加了深信服2018届实习生的笔试,面试,顺利拿到offer,下面记录一下自己在这次笔试和面试的一下问题,题目很基础,但是是多选题,非常容易出错,及其考验基本功。1下面代码能输出hell的是:A.ch...
  • taoyanqi8932
  • taoyanqi8932
  • 2016年11月14日 21:36
  • 2689

前端笔试(一)

阿里 AJAX跨域 设置 async:true即异步执行,设置async:false即同步执行 jquery中ajax处理跨域的三大方式  http://www.jb51.net/article...
  • yan647
  • yan647
  • 2016年09月13日 17:36
  • 557

我的深信服三年

深信服三年,有很多话要说
  • grace_yi
  • grace_yi
  • 2016年07月18日 14:55
  • 4025

深信服面试之痛

某一天,我在QQ空间上看到一朋友发表了一篇日志,是关于参加校园招聘的,说是通过了深圳的某个大公司的校招,从字里行间可以读出他的喜悦与自豪之情。其实,那个时候的我对校园招聘还不是很了解,而且自己已经处于...
  • u010545480
  • u010545480
  • 2015年01月09日 22:03
  • 2142

深信服面试linux开发工程师总结

1.malloc和new的区别 2.解释一下位域 3.c语言的地址对齐是怎么回事 4.写一个类似于printf的函数,可以接受任意多个参数 5.使用memcp函数的时候,有什么要注意的 6....
  • TopicDev
  • TopicDev
  • 2014年02月15日 16:09
  • 1760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(深信服笔试题)简单文本文件的过滤高频率单词C++代码
举报原因:
原因补充:

(最多只允许输入30个字)