7-44 基于词频的文件相似度 (30 分)(思路加详解+set容器简便做法)兄弟们冲呀呀呀呀呀 今天你AC了吗(2)

最后

学习视频:

大厂面试真题:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

输入首先给出正整数N(≤100),为文件总数。随后按以下格式给出每个文件的内容:首先给出文件正文,最后在一行中只给出一个字符#,表示文件结束。在N个文件内容结束之后,给出查询总数M(≤10

4

),随后M行,每行给出一对文件编号,其间以空格分隔。这里假设文件按给出的顺序从1到N编号。

输出格式:

针对每一条查询,在一行中输出两文件的相似度,即两文件的公共词汇量占两文件总词汇量的百分比,精确到小数点后1位。注意这里的一个“单词”只包括仅由英文字母组成的、长度不小于3、且不超过10的英文单词,长度超过10的只考虑前10个字母。单词间以任何非英文字母隔开。另外,大小写不同的同一单词被认为是相同的单词,例如“You”和“you”是同一个单词。

输入样例:

3

Aaa Bbb Ccc

Bbb Ccc Ddd

Aaa2 ccc Eee

is at Ddd@Fff

2

1 2

1 3

输出样例:

50.0%

33.3%

二:思路

===================================================================

用到了set容器,这个容器我也是第一次用,这个他有自动去重的特性,而且,这个容器相较于map容器他只有关键值 ,其他用法类似,但要在注意的是,这里的迭代器都是指针,即遍历容器返回值都是指针

三:知识速递(对set容器不了解的兄弟们来看一下)

========================================================================================

set基本用法

四:上码(来兄弟们 干了这杯码 我们来日方长)

======================================================================================

#include<bits/stdc++.h>

using namespace std;

sets[100];

void manage(string str,int x){

string word = “”;//初始化字符串

str+=“!”;//表示最后一个单词的结束 什么符号都可以

for( int i = 0; i < str.size(); i++ ){

if( isalpha (str[i]) ){//判断单个字符是否为字母

if( word.size() < 10){//处理字母个数小于10个的单词

word+=tolower(str[i]);//将大写字母转换成小写字母

}

}else{

if( word.size() > 2 ){

s[x].insert(word);

}

word.clear();//将字符串的内容清空 为下一次调用函数做准备

}

}

}

int main(){

int N;

cin >> N;

getchar();//处理换行符 当cin 和 getline() 一块用的时候

for( int i = 0; i < N; i++ ){

string str = “”;//初始化字符串

while( str != “#” ){

manage(str,i);

getline(cin,str);//每次是读进来一行

}

}

// set::iterator t;

// for( t = s[0].begin(); t != s[0].end(); t++ ){

// cout << *t << ’ ';

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!

下面给大家分享下我的面试大全资料

  • 第一份是我的后端JAVA面试大全

image.png

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

pZb-1715801040201)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值