博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【面经】2021 中国农业银行 笔试编程题
阅读量:3926 次
发布时间:2019-05-23

本文共 2150 字,大约阅读时间需要 7 分钟。

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

点击上方蓝字关注我,我们一起学编程

欢迎小伙伴们分享、转载、私信、赞赏

1 火星文表示法

题目描述:

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

火星使用三进制表示数据,他们的数字符号:@$& 这三个符号分别表示 0、1、2 。现在输入一个十进制数,请把它用火星的三进制数表示出来。

示例:

输入:123

输出:"$$$&@"

参考代码:

string triCoding(int num){
vector
code; while (num != 0) {
code.push_back(num % 3); num /= 3; } string s; string base = "@$&"; for (auto e : code) {
s += base[e]; } return s;}

2 找出离质心最近的点

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

题目描述:

在二维平面上有 k(0~k-1) 个点,请找出这 k 个点中离质心最近点的编号。质心:横纵坐标为所有点的均值。

示例:

输入:["1,1", "2,2", "1,2", "1,3"]

输出:2

参考代码:

int get_index(vector
points){
double x, y; double mx = 0, my = 0; vector
pos; // 从string中分析横纵坐标 for (sting s : points) {
x = 0; y = 0; int idx = 0; while (s[idx] != ',') {
x = x * 10 + s[idx++] - '0'; } pos.push_back(x); mx += x; ++idx; while (idx < s.size()) {
y = y * 10 + s[idx++] - '0'; } pos.push_back(y); my += y; } mx /= points.size(); my /= points.size(); int index = 0; double min_dist = INT_MAX; for (int i = 0; i < pos.size(); i += 2) {
x = pos[i]; y = pos[i + 1]; double dist = (x - mx) * (x - mx) + (y - my) * (y - my); if (dist < min_dist) {
min_dist = dist; index = i / 2; } } return index;}

3 扑克牌排序

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

题目描述:

一副扑克牌中的牌面分为 5 种花色:大小鬼、黑桃、红桃、梅花、方块,分别用 kshpq 表示这五种花色,同时牌面采用 1~13 之间的数字表示同一花色中的大小(小鬼-1,大鬼-2)。某扑克牌游戏中,一个玩家拿到了 12 张扑克牌,请按照如下规则对该玩家的牌进行排序,返回排序结果。

  • 首先按照大小鬼、、黑桃、红桃、梅花、方块进行花色排序;
  • 然后再对同一花色中的扑克牌按照数字从小到大排序。

示例:

输入:["s1", "s3", "s9", "s4", "h1", "p3", "p2", "q5", "q4", "q9", "k2", "k1"]

输出:["k1", "k2", "s1", "s3", "s4", "s9", "h1", "p2", "p3", "q4", "q5", "q9"]

参考代码:

vector
getPokerOrder(vector
cards){
vector
res; string help = "kshpq"; map
> type; for (int i = 0; i < cards.size(); ++i) {
type[cards[i][0]].push_back(cards[i]); } for (int i = 0; i < help.size(); ++i) {
sort(type[help[i]].begin(), type[help[i]].end()); for (auto e : type[help[i]]) {
res.push_back(e); } } return res;}

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

你可能感兴趣的文章
hdu 1008 Elevator
查看>>
hdu 1005 Number Sequence(数学题目,好好看)
查看>>
zoj 2106 Tick and Tick(比较好的数学题目,代码特麻烦,注意精度)
查看>>
zoj 2107 Quoit Design(最近点对问题,好好思考,分治)
查看>>
zoj 2111 Starship Troopers(树形DP)
查看>>
vector 容器的使用方法
查看>>
hdu 1520 Anniversary party(基本树形DP)
查看>>
poj 1463 Strategic game(树形DP)
查看>>
poj 3342 Party at Hali-Bula(树形DP+判断方式是不是唯一)
查看>>
map 的使用方法
查看>>
Problem 2129 子序列个数 (动态规划题目,注意模余的问题)
查看>>
Problem 2121 神庙逃亡 (简单的物理题)
查看>>
Problem 2122 又见LKity (简单的字符串问题)
查看>>
Problem 2123 数字的孔数 (简单题目)
查看>>
Problem 2124 吃豆人 (BFS)
查看>>
FZU 2125 Problem 2125 简单的等式
查看>>
fzu 2127 养鸡场 (待整理)
查看>>
fzu Problem 2128 最长子串 (注意strstr函数的使用)
查看>>
下沉的船 (注意sort并非按照下标排序,需要自己加入二次判断)
查看>>
选夫婿1 (简单题)
查看>>