深信服校园招聘c/c++软件开发A卷
题目链接:https://www.nowcoder.com/test/23090658/summary
1、围棋遍历
函数calc计算围棋中位置(x,y)处连成一片的棋子个数。所谓连成一片,即沿着棋盘横竖线往任意方向遍历,遍历过程允许转弯,不允许走斜线,中间未出现对方棋子或空子。
enum color {
NONE, WHITE, BLACK, // 棋子颜色,NONE表示未落子
};
struct weiqi {
enum color board[19][19]; // 棋盘上每个位置的落子
};
int calc(struct weiqi *wq, int x, int y){}
输入描述:
第1-19行数据是棋盘上棋子的颜色数据。0表示未落子,1表示白子,2表示黑子。 第1行最左边位置的坐标是(0,0),第1行第2列的坐标是(1,0),第2行第1列的坐标是(0,1),依此类推。 第20行数据是起始坐标(x,y)
输出描述:
与坐标(X,Y)连成一片的棋子数目
输入例子1:
0000000000000000000 0000011000000000000 0000001111000000000 0000001021000000000 0000001010100000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 5,1
输出例子1:
9
#include <stdio.h>
#include <string.h>enum color {NONE, WHITE, BLACK, //棋子颜色,NONE表示未落子
};
struct weiqi {enum color board[19][19]; //棋盘上每个位置的落子
};int calc(struct weiqi* wq, int x, int y)
{static int dir[][2] = { {1,0},{0,1},{0,-1},{-1,0} };static color current = wq->board[y][x];if (x >= 19|| x < 0|| y >= 19|| y < 0|| wq->board[y][x] != current|| wq->board[y][x] == NONE)return 0;int counter = 1;wq->board[y][x] = NONE;for (int i = 0; i< 4; i++)counter+=calc(wq, x + dir[i][0], y + dir[i][1]);return counter;
}int input(struct weiqi* wq, int* x, int* y)
{int row, col;int ret;char buf[80];for (row = 0; row < 19; ++row) {if (fgets(buf, sizeof(buf), stdin) == NULL)return -1;if (strlen(buf) < 19)return -1;for (col = 0; col < 19; ++col) {switch (buf[col]) {case '0':wq->board[row][col] = NONE;break;case '1':wq->board[row][col] = WHITE;break;case '2':wq->board[row][col] = BLACK;break;default:return -1;}}}ret = scanf( "%d,%d", x, y);if (ret != 2)return -1;for (row = 0; row < 19; ++row) {for (col = 0; col < 19; ++col) {fprintf(stderr, "%d ", wq->board[row][col]);}fprintf(stderr, "\n");}fprintf(stderr, "x = %d, y = %d\n", *x, *y);return 0;
}int main()
{struct weiqi wq;int x = 0, y = 0;int cnt;memset(&wq, 0, sizeof(wq));if (input(&wq, &x, &y) < 0) {fprintf(stderr, "error!\n");return 1;}cnt = calc(&wq, x, y);printf("%d\n", cnt);return 0;
}
2、单链表排序
请实现list_sort,使用冒泡法将head指向的链表按val值大小排成升序
struct node {
int val;
struct node *next;
};
void list_sort(struct node *head)
{
}
static void list_sort(struct node* head)
{for (node* i = head; i; i=i->next) {for (node* j = i->next; j; j = j->next) {if (i->val > j->val)std::swap(i->val, j->val);}}
}
3、出栈顺序
|
输入描述:
字符串,如:abc
输出描述:
可能的出栈顺序,每行一种顺序
输入例子1:
abc
输出例子1:
abc acb bac bca cba
#include <iostream>
#include <string>
#include <vector>
#include <set>
using namespace std;
int main() {string str;cin >> str;vector<pair<string, string>> result; //(栈中字符,出栈字符)result.push_back({ string(),string() });for (const char& ch : str) {int m_size = result.size();for (int i = 0; i < m_size; i++) {result[i].first.push_back(ch); pair<string, string> temp = result[i];for (int j = 0; j < result[i].first.size(); j++) {temp.second.push_back(temp.first.back());temp.first.pop_back();result.push_back(temp);}}}set<string> output;for (auto& stk : result)output.insert(stk.second + string(stk.first.rbegin(), stk.first.rend()));for (const string& str : output)cout << str << endl;return 0;
}
深信服校园招聘c/c++软件开发A卷相关推荐
- [牛客练习] 深信服校园招聘c/c 软件开发H卷 Apare_xzc
[牛客练习] 深信服校园招聘c/c 软件开发H卷 Apare 2020.9.17 牛客链接 56种 dp或者dfs #include <bits/stdc++.h> using names ...
- 深信服校园招聘c/c++ 软件开发A卷--菜鸡落泪
#深信服校园招聘c/c++ 软件开发A卷 软件开发A卷目录 #深信服校园招聘c/c++ 软件开发A卷 第一题-围棋遍历(水题,递归搜索,有小坑) 第二题-单链表排序(常规题,考察链表的基本操作) 第三 ...
- 深信服校园招聘c/c++软件开发B卷
链接:https://www.nowcoder.com/test/23090664/summary 1.位对齐 编写函数align_n,将size的低n位(即:0到n-1位)清零,如果清零前size的 ...
- 2011深信服校园招聘笔试面试
http://blog.sina.com.cn/s/blog_48c9576b0100me1y.html 9月26号深信服校园招聘笔试 都说深信服的题又偏又难,果然不假.不过还有有很多值得多思考的题. ...
- 深信服校园招聘安全攻防A卷
深信服校园招聘安全攻防A卷 1.谈谈在WEB类安全问题的应急处置过程中web日志溯源攻击路径的思路? 在对WEB日志进行安全分析时,可以按照下面两种思路展开,逐步深入,还原整个攻击过程. 首先确定受到 ...
- 深信服校园招聘安全攻防F卷
1.请尽可能列举你知道的网站未能正确使用图片验证码机制的情况,以及如何绕过其限制? - 图形验证码的内容可OCR识别 - 多阶段的过程,先校验验证码,成功之后的下一步不需要验证码,可以直接抓包,跳过第 ...
- 浙江大华2013校园招聘笔试题软件算法类D卷
- 2019.5 美团实习生招聘(java软件开发)面经
2019.5 美团实习生招聘(java软件开发)面经 垃圾回收(判断垃圾是否该回收.回收算法.回收器) 类加载,怎么保证类加载只进行一次(类加载步骤.双亲委派机制) hashmap自动扩容如何实现 多 ...
- 招聘:JAVA软件开发工程师
招聘:java软件开发工程师 本公司所有新创办的创业型小公司. 研发团队6-7个人. 工作地点:厦门软件园二期观日路 现需招聘java软件开发工程师2-3名 要求: 1.有良好的沟通能力.团队合作精神 ...
最新文章
- 独家 | 聊天机器人开发中的机器学习(附链接)
- OpenAI首次推出数学定理推理模型GPT-f,23个推导结果被专业数据库收录
- python 可变 与 不可变类型
- 【项目管理】敏捷小品:Rupert 工业公司 项目:~Alpha~
- 天水市一中2021高考成绩查询,天水高中成绩排名2021,天水中考分数线排行榜
- 简易的素描图片转换流程与实现
- WebService学习总结——调用第三方提供的webService服务
- 慢动作重播~ 英伟达AI能把普通视频,变成高质量慢动作视频
- sql优化工具explain的使用
- 改进的OTSU算法处理光照不均匀图像
- GPS定位准确度CEP、RMS
- 后台打log(便于查看问题和调试)方法
- mysql语句批量更新数据库_sql 更新批量数据库语句
- 玩客云刷入openwrt系统
- 剖析非同质化代币ERC721-全面解析ERC721标准
- Google I/O 2012 主题演讲直播(第一天)Android 4.1 Jelly Bean们来了
- 走出舒适圈,你才能看到更广袤的世界
- 交叉配血类有哪些最新发表的毕业论文呢?
- iphone制作电子杂志
- 无源光网络的原理和构成