小红书C++开发笔试8.19AK

第一题背单词

第一题用一个哈希表存每个单词对应的次数,维护一个count变量记录当前所需次数,只要当前单词次数大于count,count自增,然后用set将该单词记录避免重复统计,最后输出count

#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
#include<unordered_set>
using namespace std; 

int main(){
	int n;
	cin>>n;
	string s;
	int count = 1;
	unordered_map<string, int> map;
	unordered_set<string> isRem;
	for(int i=0;i<n;i++){
		cin>>s;
		map[s]++;
		if(map[s]>=count){
			if(isRem.count(s)==0){
				isRem.insert(s);
				count++;
			}
		}
	}
	cout<<count-1<<endl;
}

第二题回文串

这题有点脑筋急转弯,其实只要将m和w先拆开,然后左右指针判断即可

#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
#include<unordered_set>
using namespace std; 

void check(string s){
	int l = 0, r = s.size() - 1;
	while(l < r){
		if(s[l]==s[r]){
			l++;r--;
		}
		else if(s[l]=='b'||s[l]=='p'||s[l]=='q'||s[l]=='d'){
			if(s[r]=='b'||s[r]=='p'||s[r]=='q'||s[r]=='d'){
				l++;r--;
			}
			else{
				cout<<"NO"<<endl;
				return;
			}
		}
		else if(s[l]=='n'||s[l]=='u'){
			if(s[r]=='n'||s[r]=='u'){
				l++;r--;
			}
			else{
				cout<<"NO"<<endl;
				return;
			}
		}
		else{
			cout<<"NO"<<endl;
			return;
		}
	}
	cout<<"YES"<<endl;
}

int main(){
	int n;
	cin>>n;
	string s;
	for(int i=0;i<n;i++){
		cin>>s;
		string str = "";
		for(char ch:s){
			if(ch=='w'){
				str += "vv";
			}
			else if(ch=='m'){
				str += "nn";
			}
			else str.push_back(ch);
		}
		check(str);
	}
}

第三题旅游景点

只能经过三个城市,暴力dfs即可,有点坑的是不能用邻接矩阵表示城市间所需时间,这样好像会爆内存,但是赛码网不会提醒,得去提交记录里面看内存记录

#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
#include<unordered_set>
using namespace std; 

int main(){
	int n,m;
	long long k;
	int a,b,c;
	cin>>n>>m>>k;
	vector<int>sites(n+1);
	for(int i=1;i<=n;i++) cin>>sites[i];
	vector<int>times(n+1);
	for(int i=1;i<=n;i++) cin>>times[i];
	
	unordered_map<int,vector<pair<int,int>>> roads; 
	for(int i=0;i<m;i++){
		cin>>a>>b>>c;
		roads[a].push_back({b,c});
		roads[b].push_back({a,c});
	}
	long long maxvalue = 0; 
	for(int i=1;i<=n;i++){
		if(times[i]>k) continue;
		maxvalue = max(maxvalue, (long long)sites[i]);
		// 第一步 从i出发 
		vector<pair<int,int>> next = roads[i];
		for(pair<int,int> p:next){
			long long time = times[i];
			long long value = sites[i];
			int j = p.first;
			int road = p.second;
			
			if(i!=j){
				time += (times[j] + road);
				if(time>k) continue;
				value += sites[j];
				maxvalue = max(maxvalue, value);
				/// 第二步 从j出发 
				vector<pair<int,int>> next1 = roads[j];
				for(pair<int,int> q:next1){
					long long time2 = time;
					long long value2 = value;
					int x = q.first;
					int road1 = q.second;
					
					if(x!=j&&x!=i){
						time2 += (times[x] + road1);
						if(time2>k) continue;
						value2 += sites[x];
						maxvalue = max(maxvalue, value2); 
					}
				}
			}
		} 
	}
	cout<<maxvalue<<endl;
}

感觉比小红书提前批的题简单多了

#小红书#
全部评论
爆内存可太艹了,我就是临接表存的,麻了
2 回复 分享
发布于 2023-08-19 18:41 广东
第二题是回溯吗 一直超时 人麻了。
1 回复 分享
发布于 2023-08-19 18:09 福建
第三题cout << 9得18%,写了一大堆还是18%
1 回复 分享
发布于 2023-08-19 18:06 北京
第三题求个代码,只过了45%
1 回复 分享
发布于 2023-08-19 17:55 上海
给大佬点个赞 代码的思路清晰
点赞 回复 分享
发布于 2023-08-20 15:23 安徽
第一题不用考虑一个字符串里面有多个单词吗?
点赞 回复 分享
发布于 2023-08-20 00:13 四川
有代码嘛,第二题,我也是这个思路,只有18%
点赞 回复 分享
发布于 2023-08-19 18:12 浙江
小红书的cpp开发是那个岗位啊
点赞 回复 分享
发布于 2023-08-19 18:05 广东
第三题怎么做的,我理解是树上dp还得判断有没有环?
点赞 回复 分享
发布于 2023-08-19 18:03 北京
6
点赞 回复 分享
发布于 2023-08-19 18:02 山东
第一题咋做啊
点赞 回复 分享
发布于 2023-08-19 17:58 北京
为什么我只能过20%的测例QAQ,有解析嘛
点赞 回复 分享
发布于 2023-08-19 17:54 上海

相关推荐

真tmd的恶心,1.面试开始先说我讲简历讲得不好,要怎样讲怎样讲,先讲背景,再讲技术,然后再讲提升多少多少,一顿说教。2.接着讲项目,我先把背景讲完,开始讲重点,面试官立即打断说讲一下重点,无语。3.接着聊到了项目的对比学习的正样本采样,说我正样本采样是错的,我解释了十几分钟,还是说我错的,我在上一家实习用这个方法能work,并经过市场的检验,并且是顶会论文的复现,再怎么不对也不可能是错的。4.面试官,说都没说面试结束就退出会议,把面试者晾在会议里面,丝毫不尊重面试者难受的点:1.一开始是讲得不好是欣然接受的,毕竟是学习。2.我按照面试官的要求,先讲背景,再讲技术。当我讲完背景再讲技术的时候(甚至已经开始蹦出了几个技术名词),凭什么打断我说讲重点,是不能听出人家重点开始了?这也能理解,每个人都有犯错,我也没放心上。3.我自己做过的项目,我了解得肯定比他多,他这样贬低我做过的项目,说我的工作是错误的,作为一个技术人员,我是完全不能接受的,因此我就和他解释,但无论怎么解释都说我错。凭什么,作为面试官自己不了解相关技术,别人用这个方式work,凭什么还认为这个方法是错的,不接受面试者的解释。4.这个无可厚非,作为面试官,不打招呼就退出会议,把面试者晾着,本身就是有问题。综上所述,我现在不觉得第一第二点也是我的问题,面试官有很大的问题,就是专门恶心人的,总结面试官说教,不尊重面试者,打击面试者,不接受好的面试者,技术一般的守旧固执分子。有这种人部门有这种人怎么发展啊。最后去查了一下,岗位关闭了。也有可能是招到人了来恶心人的,但是也很cs
牛客20646354...:招黑奴啊,算法工程师一天200?
点赞 评论 收藏
分享
评论
11
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务