返回介绍

solution / 0500-0599 / 0544.Output Contest Matches / README_EN

发布于 2024-06-17 01:03:59 字数 3980 浏览 0 评论 0 收藏 0

544. Output Contest Matches

中文文档

Description

During the NBA playoffs, we always set the rather strong team to play with the rather weak team, like making the rank 1 team play with the rank nth team, which is a good strategy to make the contest more interesting.

Given n teams, return _their final contest matches in the form of a string_.

The n teams are labeled from 1 to n, which represents their initial rank (i.e., Rank 1 is the strongest team and Rank n is the weakest team).

We will use parentheses '(', and ')' and commas ',' to represent the contest team pairing. We use the parentheses for pairing and the commas for partition. During the pairing process in each round, you always need to follow the strategy of making the rather strong one pair with the rather weak one.

 

Example 1:

Input: n = 4
Output: "((1,4),(2,3))"
Explanation:
In the first round, we pair the team 1 and 4, the teams 2 and 3 together, as we need to make the strong team and weak team together.
And we got (1, 4),(2, 3).
In the second round, the winners of (1, 4) and (2, 3) need to play again to generate the final winner, so you need to add the paratheses outside them.
And we got the final answer ((1,4),(2,3)).

Example 2:

Input: n = 8
Output: "(((1,8),(4,5)),((2,7),(3,6)))"
Explanation:
First round: (1, 8),(2, 7),(3, 6),(4, 5)
Second round: ((1, 8),(4, 5)),((2, 7),(3, 6))
Third round: (((1, 8),(4, 5)),((2, 7),(3, 6)))
Since the third round will generate the final winner, you need to output the answer (((1,8),(4,5)),((2,7),(3,6))).

 

Constraints:

  • n == 2x where x in in the range [1, 12].

Solutions

Solution 1

class Solution:
  def findContestMatch(self, n: int) -> str:
    team = [str(i + 1) for i in range(n)]
    while n > 1:
      for i in range(n >> 1):
        team[i] = f'({team[i]},{team[n - 1 - i]})'
      n >>= 1
    return team[0]
class Solution {
  public String findContestMatch(int n) {
    String[] team = new String[n];
    for (int i = 0; i < n; ++i) {
      team[i] = "" + (i + 1);
    }
    for (; n > 1; n /= 2) {
      for (int i = 0; i < n / 2; ++i) {
        team[i] = "(" + team[i] + "," + team[n - 1 - i] + ")";
      }
    }
    return team[0];
  }
}
class Solution {
public:
  string findContestMatch(int n) {
    vector<string> team(n);
    for (int i = 0; i < n; ++i) team[i] = to_string(i + 1);
    for (; n > 1; n >>= 1) {
      for (int i = 0; i < n >> 1; ++i) {
        team[i] = "(" + team[i] + "," + team[n - 1 - i] + ")";
      }
    }
    return team[0];
  }
};
func findContestMatch(n int) string {
  team := make([]string, n)
  for i := range team {
    team[i] = strconv.Itoa(i + 1)
  }
  for n > 1 {
    for i := 0; i < n>>1; i++ {
      team[i] = "(" + team[i] + "," + team[n-1-i] + ")"
    }
    n >>= 1
  }
  return team[0]
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文