繁体   English   中英

如何编写计算连接表示的字符串数量的方法

[英]How to write method for counting the number of strings represented of the concatenation

我有一个列表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 个是不正确的

测试:

测试

任务:

任务

问题是您测试字符串与自身的连接,而不是测试与其他字符串的所有其他组合。

此代码将工作:

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

你可以试试这个:

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
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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM