解题思路
先构造 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))
算法及复杂度
- 算法:模拟。
- 时间复杂度: 。
- 空间复杂度: 。