解题思路

先构造 r 个 ( ,然后构造 r 个 ) ,最后构造 n-r 对 ()

代码

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,m,i;
	cin>>n>>m;
	cout<<string(m,'(')<<string(m,')');
	for(i=m+1;i<=n;++i)
		cout<<"()";
	return 0;
}
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt(),m=sc.nextInt(),i;
        for(i=0;i<m;++i)
            System.out.print("(");
        for(i=0;i<m;++i)
            System.out.print(")");
        for(i=m+1;i<=n;++i)
            System.out.print("()");
    }
}
n,m=map(int,input().split())
print('('*m+')'*m+'()'*(n-m))

算法及复杂度

  • 算法:模拟。
  • 时间复杂度:
  • 空间复杂度: