- 一、二进制求和
- 1,程序简介
- 示例 1:
- 示例 2:
- 提示:
- 2,程序代码
- 3,运行结果
- 二、输出整数的全排列
- 1,程序简介
- 输入样例:
- 2,程序代码
- 3,运行结果
- 三、括号生成
- 1,程序简介
- 示例 1:
- 示例 2:
- 提示:
- 以下程序实现了这一功能,请你填补空白处内容:
- 2,程序代码
- 3,运行结果
一、二进制求和 1,程序简介
- 给你两个二进制字符串,返回它们的和(用二进制表示)。
- 输入为 非空 字符串且只包含数字 1 和 0。
- 输入: a = “11”, b = “1”
- 输出: “100”
- 输入: a = “1010”, b = “1011”
- 输出: “10101”
- 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
- 1 <= a.length, b.length <= 10^4
- 字符串如果不是 “0” ,就都不含前导零。
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 24 19:06:43 2021
Function:
@author: 小梁aixj
"""
class Solution(object):
def addBinary(self, a, b):
res = ''
lsa, lsb = len(a), len(b)
pos, curr = -1, 0
while (lsa + pos) >= 0 or (lsb + pos) >= 0:
if (lsa + pos) >= 0:
curr += int(a[pos])
if (lsb + pos) >= 0:
curr += int(b[pos])
res = str(curr % 2) + res
curr //= 2
pos -= 1
if curr == 1:
res = '1' + res
return res
# %%
s = Solution()
print(s.addBinary(a = '1010', b = '1011')) #10101
3,运行结果
二、输出整数的全排列
1,程序简介
- 输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按字典序输出。
- 输入:3
- 输出:123 132 213 231 312 321
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 24 19:07:39 2021
Function:
@author: 小梁aixj
"""
import random
count=0
n = int(input('输入整数n(3<=n<=7):'))
t = list()
t1 = set()
for i in range(1, n+1):
t.append(str(i))
while True:
sum = 1
for i in range(1, n + 1):
sum *= i
if len(t1) >= sum:
break
random.shuffle(t)
t1.add(''.join(t))
s = sorted(t1)
for i in s:
print(i,end = ' ')
count = count+1
if count%4 == 0:
print()
3,运行结果
三、括号生成
1,程序简介
- 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
- 输入:n = 3
- 输出:["((()))","(()())","(())()","()(())","()()()"]
- 输入:n = 1
- 输出:["()"]
1 <= n <= 8以下程序实现了这一功能,请你填补空白处内容:
class Solution
{
public:
void gen(string &p, int lc, int rc, vector &r, int n)
{
if (lc > n)
return;
if (lc == n && rc == n)
{
r.push_back(p);
return;
}
p.push_back('(');
lc++;
gen(p, lc, rc, r, n);
p.pop_back();
lc--;
if (lc > rc)
{
_________________
}
}
vector generateParenthesis(int n)
{
string p;
int lc = 0, rc = 0;
vector r;
gen(p, lc, rc, r, n);
return r;
}
};
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 24 19:07:56 2021
Function:
@author: 小梁aixj
"""
from typing import List
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
def gen(p, lc, rc, r, n):
if lc > n:
return
if lc == n and rc == n:
r.append(''.join(p))
p.append('(')
lc += 1
gen(p, lc, rc, r, n)
p.pop()
lc -= 1
if lc > rc:
p.append(')')
rc += 1
gen(p, lc, rc, r, n)
p.pop()
rc -= 1
results = []
gen([], 0, 0, results, n)
return results
# %%
s = Solution()
print(s.generateParenthesis(n = 3)) #['((()))', '(()())', '(())()', '()(())', '()()()']
print(s.generateParenthesis(n = 1)) #['()']
3,运行结果



