小编Mus*_*afa的帖子

在Python中将唯一字符串映射到整数

我有一个清单,比方说 L = ['apple','bat','apple','car','pet','bat'].

我想把它转换成 Lnew = [ 1,2,1,3,4,2].

每个唯一字符串都与一个数字相关联.

我有一个java解决方案使用hashmap,但我不知道如何hashmap在python中使用.请帮忙.

python

8
推荐指数
1
解决办法
1万
查看次数

是时候将排序列表合并到单个排序列表中?

给出logN每个大小的排序列表N*logN.将它们合并到单个排序列表所需的总时间是多少?

A) O(NlogN)
B) O(N)
C) O(NloglogN)
D) O(Nlog(N/logN))
Run Code Online (Sandbox Code Playgroud)

我尝试通过N = 4来解决它.但没有选择令人满意.

algorithm time-complexity

3
推荐指数
1
解决办法
766
查看次数

使用位掩码生成排列

我正在使用位掩码生成字符串的所有排列。

void recurse(string s, int mask,int taken){

    if(taken == n){
        cout << " ";
        return;
    }
    for(int i = 0; i < n; i++){
        if(((1 << i) & mask) == 0){
            cout << s[i];
            recurse(s, (mask|(1 << i)), taken + 1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此函数中,n 是字符串的长度。我正在跟踪到目前为止使用变量打印了多少个字符。在我调用的主函数中

recurse(s,0,0);
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作。用于输入

红色的

它的输出是

红鹿德德雷尔博士

我哪里错了?


更新 //下面的代码工作正常。

void recurse(string s, int mask,int taken, string pref){

    if(taken == n){
        cout << pref <<endl; 
        return;
    }
    for(int i = 0; i < n; i++){
        if(((mask …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

2
推荐指数
1
解决办法
4638
查看次数

为什么算法效率分析时不考虑常数?

在分析算法时间效率时不考虑乘法常数,因为
A)它们在计算效率函数时相互抵消
B)常数函数随着输入大小的增长而增长非常缓慢
C)当输入大小较小时它们的影响很小
D)它们可以被克服由更快的机器
E)它们不会影响算法的实际运行时间

我的猜测是“B”,但我不知道正确答案。所有选项都是错误的吗?

algorithm time-complexity

1
推荐指数
1
解决办法
1063
查看次数

为什么fork系统调用奇怪的行为?

int main(void) {
    printf("abc");
    fork();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码的输出是:

abcabc
Run Code Online (Sandbox Code Playgroud)

为什么打印两次,即使fork系统调用在printf语句之后?

Ideone链接

c operating-system system-calls

0
推荐指数
1
解决办法
65
查看次数