我有一个想法在 python 中创建一个控制台选择菜单,如下所示:
Choose an option:
> 1. Do something 1 <
2. Do something 2
3. Do something 3
4. Do something 4
Run Code Online (Sandbox Code Playgroud)
如果我按向上箭头键,则没有任何反应。如果我按下一个,小于和大于符号会像这样上下移动:
Choose an option:
1. Do something 1
> 2. Do something 2 <
3. Do something 3
4. Do something 4
Run Code Online (Sandbox Code Playgroud)
但我不知道哪个 Python 3 模块可以帮助我捕捉按键而不是input(),并且不知道如何正确对齐它。
我的对齐解决方案是打印空格(也许?),当按键事件被捕获时,控制台将被清除并再次打印选择菜单而不是更改/修改字符串。
此外,选项将从列表中获取,这意味着此菜单是可扩展的
假设我有3个连续数字数组
a = [1, 2, 3]
b = [2, 3, 4]
c = [3, 4]
Run Code Online (Sandbox Code Playgroud)
那么,在所有3个数组中出现的相同数字是3。我的算法是使用for彼此之间的两个循环来检查相同的数组并将其推入另一个数组(我们称之为d)。然后
d = [2, 3] (d = a overlap b)
Run Code Online (Sandbox Code Playgroud)
并再次使用它检查数组,d然后c=>最终结果为1,因为在所有3个数组中仅出现1个数字。
e = [3] (e = c overlap d) => e.length = 1
Run Code Online (Sandbox Code Playgroud)
除此之外,如果仅存在1个数组,则算法应返回数组的长度,因为其所有数字均会出现在数组中。但是我认为我上面所说的算法会花费很长时间,因为数组的数量最多可以达到10 ^ 5。那么,有什么更好的算法的想法吗?
因此,我有这样的作业:
给定两个数字n并且k可以达到long long限制,我们执行以下操作:
n = n / k是否n可被kn的1,如果n不是整除k找到从n到的最少操作数0。
这是我的解决方案
#define ll long long
ll smallestSteps(ll n, ll k) {
int steps = 0;
if (n < k) return n;
else if (n == k) return 2;
else {
while (n != 0) {
if (n % k == 0) {
n /= k;
steps++;
}
else …Run Code Online (Sandbox Code Playgroud)