前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记华为笔试编程题目(软件开发)

记华为笔试编程题目(软件开发)

作者头像
相思不扫积久弥厚
发布2023-10-26 14:21:25
1650
发布2023-10-26 14:21:25
举报

倒霉透了,电脑每次都在关键时候给我整点刺激的,笔试做最后一题的时候,ide卡死了,怕关了笔试页面打不开又不敢重启,硬是靠着记事本+脑内编译做完了。。。。

话说为啥华为阿里这些大企业笔试那么水,发offer却。。。。。

今天的题目比较简单,第一题是让你开个咖啡店,每一杯咖啡5块钱,接下来进来一堆顾客,每个顾客都会拿5块或10块或20块的整钱支付,问你能不能找的开,初始状态你没有零钱~

这题秒了~~不放代码了~

第二题是个最基本的DFS,给你个地图问你从左上角到右下角是否可达,,也秒了~

代码如下:

代码语言:javascript
复制
#include <iostream>
#include<stdio.h>
#include<string>
#include <vector>
#include <algorithm>
#include <stack>
#include <set>
#include <map>
using namespace std;
int a[100][100];
bool b[100][100];
int bc;
int m, n;
bool dfs(int i, int j)
{
	if(i < 0 || j < 0)return 0;
	if (i >= n || j >= m)return 0;
	if (i == n - 1 && j == m - 1)return 1;
	if (b[i][j])return 0;
	b[i][j] = 1;
	if (!a[i][j])return 0;
	if (dfs(i - bc, j))return 1;
	if (dfs(i + bc, j))return 1;
	if (dfs(i, j - bc))return 1;
	if (dfs(i, j + bc))return 1;
	return 0;
}
int main()
{

	scanf("%d%d%d", &bc,&n,&m);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	if(dfs(0, 0))printf("1\n");
	else printf("0\n");
}

第三题,爷的噩梦来了,题目倒是没啥,IDE抽风了,重启IDE也不能解决,,又不敢跳出去百度这问题咋解决,万一被判作弊就得不偿失,,也不敢直接重启,,万一这卷子直接给我提交了。。。。

最后靠着记事本+脑内运行+oj自测,我终于ac了!!!

题目也不难,就是个字符串按照一定规则重新排列的,给你个字符串比如abcdefghijklmn,再给你个数字比如5

然后按照这个样子画一下:

a          b

   c    d

      e

   f    g

h          i

   j    k

      l

  m   n

然后竖下来读

变成 ahcfjmeldgknbi

难度不高~代码如下:(我恨Visio Studio.....本来三题半小时多就能做完的,呜呜呜~)

代码语言:javascript
复制
#include <iostream>
#include<stdio.h>
#include<string>
#include <vector>
#include <algorithm>
#include <stack>
#include <set>
#include <map>
using namespace std;
string str="";
int main()
{
	string strs;
	cin >> strs;
	int x=0;
	bool pd = 0;
	for (char c:strs)
	{
		if (c == ',')
		{
			pd = 1;
			continue;
		}
		if (!pd)str.push_back(c);
		else
		{
			x *= 10;
			x += c - '0';
		}
	}
	int zq = 2 * x - 3;
	string ans="";
	for (int i = 0; i < str.size(); i+=zq)
	{
		ans.push_back(str[i]);
	}
	for (int i = 1; i < x  / 2;i++)
	{
		for (int j = 2*i; j < str.size(); j += zq)
		{
			ans.push_back(str[j]);
			int t = (x + 1) / 2 - i;
			t = 4 * t - 5 + j;
			if(t< str.size())ans.push_back(str[t]);
		}
	}
	for(int i=x-1; i < str.size(); i += zq)
	{
		ans.push_back(str[i]);
	}
	for (int i = x / 2-1; i > 0; i--)
	{
		for (int j = 2 * i + 1; j < str.size(); j += zq)
		{
			ans.push_back(str[j]);
			int t= (x + 1) / 2 - i;
			t = 4 * t - 5 + j;
			if (t < str.size())ans.push_back(str[t]);
		}
	}
	for (int i = 1; i < str.size(); i += zq)
	{
		ans.push_back(str[i]);
	}
	cout << ans << endl;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-129,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档