链接:http://lintcode.com/zh-cn/problem/output-contest-matches/

在NBA季后赛期间,我们总是安排一支实力相当强的球队去和实力较弱的球队比赛,比如让排名第一的球队和第n队一起比赛,这是一个让比赛更有趣的好策略。现在,你得到了n个团队,你需要以字符串的形式输出他们的最终比赛。
n组以正整数的形式给出,从1到n,表示它们的初始排名。(排名第一的是实力最强的球队,排名n最弱的球队。)我们将使用括号('(',')')和逗号(',')来表示比赛团队的配对-括号('(',')')用于对分区的配对和逗号(',')。在每一轮的配对过程中,你总是需要遵循一种策略,那就是让一个相当强的一对和一个相当弱的配对。

注意事项
  1. The n is in range [2, 2^12].
  2. We ensure that the input n can be converted into the form 2^k, where k is a positive integer.

您在真实的面试中是否遇到过这个题?

Yes

样例

给定 n = 2, 返回 "(1,2)".

解释:
一开始,我们有队1和队2,位置是:1,2。
然后我们将团队(1,2)和‘(’、‘)’和‘,’组合在一起,这是最终的答案。

给定 n = 4, 返回 "((1,4),(2,3))"

解释:
在第一轮中,我们将球队1和4,2和3组合在一起,因为我们需要把强大的队伍和弱队放在一起。
和我们有(1、4)(2、3)。
在第二轮中,(1,4)和(2,3)的获胜者需要再次发挥,以产生最终的胜利者,所以你需要在他们的外面加上括号。
我们得到了最终答案((1,4),(2,3))

给定 n = 8, 返回 "(((1,8),(4,5)),((2,7),(3,6)))".

解释:
第一轮: (1,8),(2,7),(3,6),(4,5)
第二轮: ((1,8),(4,5)),((2,7),(3,6))
第三轮: (((1,8),(4,5)),((2,7),(3,6)))
由于第三轮将产生最终的赢家,您需要输出答案(((1,8),(4,5)),((2,7),(3,6)))。

class Solution {
public:/*** @param n: a integer, denote the number of teams* @return: a string*/string findContestMatch(int n) {// write your code herevector<string> res;for(int i=1;i<=n;i++){res.push_back(to_string(i));}while(res.size()>1){vector<string> tmp;for(int i=0;i<res.size()/2;i++){tmp.push_back("("+res[i]+","+res[res.size()-1-i]+")");}res=tmp;}return res[0];}
};

[lintcode]879. 输出赛程表相关推荐

  1. lintcode 输出赛程表

    描述 在NBA季后赛期间,我们总是安排一支实力相当强的球队去和实力较弱的球队比赛,比如让排名第1的球队和第n的球队一起比赛,这是一个让比赛更有趣的好策略.现在给定n个球队,你需要以字符串的形式返回他们 ...

  2. UESTC 1607 大学生足球联赛 构造、蛇形安排赛程表

    大学生足球联赛 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit   ...

  3. 嵌套的json ajax,通过jquery或javascript通过AJAX读取嵌套的JSON并输出到表中

    我真的很想有一个快速便捷的方法来遍历JSON中的多个记录,每个记录都有潜在的深层嵌套.我只想输出到表. 我不确定$ .each()或$ .ajax()成功的javascript方法需要通过functi ...

  4. 美联社将在以太坊区块链记录NCAA锦标赛篮球比分和赛程表

    美联社与Everipedia合作,将在以太坊区块链上发布疯狂三月(NCAA锦标赛)的篮球比分和赛程表.首场比赛将于美东时间今天下午6点开始. 文章链接:https://www.tuoluocaijin ...

  5. 世界杯2022赛程表

    2022卡塔尔世界杯已经开赛了,那么小伙伴们准备好了吗?更加热血沸腾的场面往往还在后面,小编也是非常期待着世界杯后面的比赛,但是很多小伙伴并不知道卡塔尔世界杯的赛程表,所以小编为大家带来了世界杯202 ...

  6. 赛程表 (递归调用, 非递归调用)

    赛程表 (递归调用, 非递归调用) package site.wanjiahao.gameTable;public class Main {// 为了方便调试,直接限定数值大小 需要改变也可以动态改变 ...

  7. 小技巧-不使用js制作高级足球比赛赛程表

    今天给大家介绍一种不使用js而用id来实现制作高级足球比赛赛程表(点击轮次即可显示出对应的轮次的赛程,后文会详细说明) 本文代码只展示核心代码 我们先用a标签写出轮次图的代码:(a里面的href使用i ...

  8. 乒乓球比赛赛程_2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道

    原标题:2018国际乒联乒乓球重大赛事详细赛程表,看点爆点早知道 随着国际乒联总决赛的落幕,今年的国际大赛告一段落.好球的朋友们,2018年又有哪些国际大赛值得关注呢? 国乒有哪些重大记录等着打破?巡 ...

  9. 飘逸的python - 赛程表算法

    最近德甲英超西甲各大联赛重燃战火,想起之前写过的一段生成赛程表的代码,用python来写这类东西太舒服了. 这个算法叫做蛇环算法. 即,把所有球队排成一个环形(2列),左边对阵右边,第一支队伍不动,其 ...

最新文章

  1. js去el的map_转:el表达式获取map对象的内容 js中使用el表达式 js 中使用jstl 实现 session.removeattribute...
  2. linux elf格式 全局指针表got call跳转表plt 简介
  3. [Eclipse]GEF入门系列(九、增加易用性)
  4. 华为交换机查看端口流量_华为交换机限速及流量统计配置
  5. java如何关闭creo,creo怎么把网页关掉
  6. 特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null
  7. 服务器端提交form
  8. 矢量绘图软件Sketch 82 for mac
  9. Landsat遥感影像下载
  10. PS的30个实用技巧大全
  11. 韦伯-费纳希定律,前景理论及其在数据科学中的应用
  12. 用piranha配置LVS
  13. qmoc文件_Qt(2):MOC文件解析
  14. Raspberry Pi 上手准备
  15. 基于docer 构建微服务基础设施
  16. Android微信登录引起的内存泄漏
  17. 写论文工具:LaTex在线网站
  18. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to
  19. zzuli303(奇葩26进制转换)
  20. JOIN US | 京东云技术精英招聘

热门文章

  1. layui多选下拉框,多选
  2. 小程序 web-view 打开 微信公众号文章
  3. Macbook Pro 启动Win7的过程中黑屏(black screen)
  4. android应用商店app图标大小,各大应用商店APP发布截图尺寸
  5. bcd 初始化库系统卷失败_中级|软考题库每日一练|2.24
  6. scikit-learn中的PCA
  7. 王倩兮金碧山水作品《绿水青山就是金山银山》
  8. 从李兴平到翔子 “草根站长”的简单化生存规则!
  9. Python3网络爬虫开发实战(第二版)
  10. python股票分析入门_学习用Python分析股票数据(入门)