python—如何编写用于计算串联所表示的字符串数的方法

siv3szwd  于 2021-09-29  发布在  Java
关注(0)|答案(3)|浏览(203)

我有一张单子 data = ['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa'] 其中我需要计算列表中字符串的数量,以列表中两个字符串的串联形式表示
我的代码:

def double_string(date):
    count = 0
    for item in data:
        if item * 2 in data:
            count += 1
    return count

我有4个测试,其中3个是正确的,1个是错误的
测试:

任务:

pgky5nke

pgky5nke1#

您可以尝试以下方法:

def double_string(lista):
    count=0
    for x in lista:
        if any(x+y in lista for y in lista):
            count+=1
    return count
print (double_string(['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa']))

输出

4
mnemlml8

mnemlml82#

问题在于,您测试的是字符串与自身的连接,而不是所有其他组合与其他字符串的连接。
此代码将在以下情况下工作:

def double_string(data):
    count = 0
    for i in range(len(data)):
        for j in range(i,len(data)):
            if data[i]+data[j] in data:
                count += 1
    return count
8gsdolmq

8gsdolmq3#

def double_string(data):
    str_count = 0
    for val in data:
        tempVal = val*2
        str_count += data.count(tempVal)

    return str_count
print (double_string(['aa', 'aaaa', 'aaaaaaaa', 'aaaa', 'qwer', 'qweraaaa']))

产出:4

相关问题