■題目描述
现在信用卡开展营销活动,持有我行信用卡客户推荐新户办卡,开卡成功后可获得积分奖励。规定每个客户最多可推荐两个新户且一个新户只能被推荐一次。但允许链接效应,即若客户A推荐了新户B,新户B推荐新户C,则客户同时属于A和B的推荐列表。简单起见,只考虑一个老客户A作起点推荐的情况。编程计算推荐新户数不小于n的客户列表。
■输入描述
输入的第一行为以空格分隔的两个正整数,第一个表示原始推荐列表的 个数m,第二个表示n的取值。
其后m每行均为一个以空格分隔的原始推荐列表,第一列为推荐人,后面两列为被推荐人,若该推荐人只推荐了一个新户,则第三列以*替代。 推荐人和被推荐人均以大写字母表示,不同字母代表不同的人。
■输出描述:
在同一行输出符合条件的客户列表,无顺序要求,客户间以空格分隔。 若客户列表为空,则输出None。详见祥例。

示例1

输入:

5 2

A  B  C

C  F  *

B  D  E

D  G  *

E  H  I  

输出

A  B  E

解题思路:

由于链接效应,比较适合的就有链表结构,二叉树结构和递归。

Solution 1

#include <vector>
#include <map>
#include <string>
#include <iostream>
using namespace std;int OutputBigClient(map<string, pair<string, string>> &r, int n,string &head, vector<string> &output){if (head == "*")    return -1;if (r.find(head) == r.end()){if (n == 0)    output.push_back(head);return 0;}int ans = 2;ans += OutputBigClient(r, n, r[head].first, output);ans += OutputBigClient(r, n, r[head].second, output);if (ans >= n)output.push_back(head);return ans;
}
int main() {int m, n;cin >> m;cin >> n;map<string, pair<string, string>> rec_list;vector<string> output;string x, y, z;for (int i = 0; i < m; i++){cin >> x >> y >> z;rec_list[x] = make_pair(y, z);}x = "A";OutputBigClient(rec_list, n, x, output);if (!output.empty()){cout << output[0];for (int i = 1; i < output.size(); ++i){cout << " " << output[i];}cout << endl;}else{cout << "None" << endl;}//system("Pause");return 0;
}

(作者:吃橘子不吐皮
链接:https://www.nowcoder.com/discuss/41237
来源:牛客网)

Solution 2

m, n= [int(i) for i in raw_input().split()]referDict = {}
for _ in range(m):referList = raw_input().strip().split()if referList[0] not in referDict:referDict[referList[0]] = '*'if not referList[1] == '*':referDict[referList[1]] = referList[0]if not referList[2] == '*':referDict[referList[2]] = referList[0]referNum = {i:0 for i in referDict.keys()}for i in referDict:aa= iwhile referDict[aa] in referNum:aa = referDict[aa]referNum[aa] += 1resultList = []
for k,v in referNum.iteritems():if v>=n:resultList.append(k)if len(resultList)==0:print "None"
else:print " ".join(resultList)

(作者:呵呵了呀
链接:https://www.nowcoder.com/discuss/41134
来源:牛客网)

转载于:https://www.cnblogs.com/Atanisi/p/7524863.html

【招行】信用卡推荐用户列表 数据岗相关推荐

  1. 【招行笔试】信用卡推荐用户列表 数据岗01

    ■題目描述 现在信用卡开展营销活动,持有我行信用卡客户推荐新户办卡,开卡成功后可获得积分奖励.规定每个客户最多可推荐两个新户且一个新户只能被推荐一次.但允许链接效应,即若客户A推荐了新户B,新户B推荐 ...

  2. 管理员信息管理之获取管理员用户列表数据

    管理员信息管理 在系统管理中我们需要完成管理员表的增删改查,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作 获取管理员用户列表数据 接口分析 请求方式: GET /meiduo ...

  3. 前端学习(1890)vue之电商管理系统电商系统之绘获取用户列表数据

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  4. 招行数据岗笔试题- 信用卡推荐客户列表

    空间限制:32768K 现在信用卡开展营销活动,持有我行信用卡客户推荐新户办卡,开卡成功后可获得积分奖励.规定每个客户最多可推荐两个新户且一个新户只能被推荐一次.但允许链接效应,即若客户A推荐了新户B ...

  5. 【招商银行数据方向笔试题】—— 信用卡推荐客户列表

    题目: 现在信用卡开展营销活动,持有我行信用卡客户推荐新户办卡,开卡成功后可获得积分奖励.规定每个客户最多可推荐两个新户且一个新户只能被推荐一次.但允许链接效应,即若客户A推荐了新户B,新户B推荐新户 ...

  6. Django----将后端数据展示在前端页面(展示用户列表及详情页)

    需求描述: 如下图,将后台数据库中的用户列表数据展示出来,点击某用户后,进入信息详情页面 解决方案: 涉及知识点:模板语言 django除了可以渲染html语言,还支持模板语言: {% for use ...

  7. 阿里巴巴计算平台资深技术专家“一浪”对大数据领域近几年的技术趋势和变化的看法【强烈推荐数据岗细细品!】

    导读:计算和存储分离是近几年大数据架构领域颇受关注的一个技术风向.在对刚刚过去的 2019 天猫双 11 技术进行总结时,阿里巴巴 CTO 行癫也特别提到了阿里在计算存储分离上的进展.大数据最初兴起之 ...

  8. 推荐算法--利用用户行为数据(02)

    文章目录 目录 1.什么是用户行为数据? 1.1用户行为分类 2.用户行为数据如何使用? 2.1 用户活跃度和物品流行度的分布 2.2 用户活跃度和物品流行度的关系 2.3 协同过滤算法 3.实验设计 ...

  9. 推荐算法(3):利用用户标签数据

    推荐算法(1):协同过滤总结 推荐算法(2):基于内容的推荐 推荐算法(3):利用用户标签数据 推荐算法(4)利用上下文信息 推荐算法(5)利用社交网络数据 推荐算法(6) 实例 推荐算法(7)缺失的 ...

最新文章

  1. 【每日算法】C语言8大经典排序算法(2)
  2. 【渝粤教育】 国家开放大学2020年春季 1079高等代数专题研究 参考试题
  3. Linux系统查看开放的端口、开启指定端口、关闭指定端口和查看及删除定时任务
  4. [读书笔记]iOS 7 UI设计 对比度
  5. 【协同任务】基于matlab人工蜂群算法多无人机作业路径规划【含Matlab源码 1235期】
  6. 常用的第三方ui框架
  7. 群智能优化算法学习规划
  8. Jmeter刷csdn博客访问量
  9. 【图片新闻】俄罗斯的新型高超音速导弹每秒飞行近两英里,“锆石Zircon”很可能是不可阻挡的尖端防空武器
  10. python棋类项目规划一——五子棋游戏策划书——项目一
  11. 幸福婚庆策划网管理系统
  12. 异常:java.lang.LinkageError: loader constraint violation: when resolving interface method “javax.servl
  13. 图形化编程与python的区别_计算机编程启蒙为什么要选图形化编程和python
  14. pyqt 多窗口之间的相互调用方法
  15. centos7软件安装更新
  16. python 导入模型_scikit-learn系列之如何存储和导入机器学习模型
  17. 程序员都看不懂的代码
  18. python生成图形验证码_python生成图片验证码
  19. 【数理逻辑与集合论】第一章 命题逻辑
  20. 中小学数学卷子自动生成程序——结队编程队友互相评价

热门文章

  1. FPGA实现串口收发的八字节数据报文Modbus Crc校验
  2. App赚钱技术变现之42个尚未开发的绝妙创意
  3. 判断是否为移动端或浏览器
  4. Hirbernate[一]
  5. Android(或者Java)通过HttpUrlConnection向SpringMVC请求数据(数据绑定)
  6. 药用级椰子油行业调研报告 - 市场现状分析与发展前景预测
  7. bzoj 4976: 宝石镶嵌
  8. bzoj4976宝石镶嵌 DP
  9. 常用VIP邮箱有哪些功能?微信能接收邮件吗?
  10. 【转】最通俗易懂的网络应用层协议详解