字符数组中字符串分类

把字符数组中的字符串进行分类:

eg:["ab","abcd","abb","abcddd","abbb","ccd"]  ,“ab”、“abb”、“abbb”同时包含字母a\b则为一类,则该字符数组总共有3类

答题思路:

  1. 遍历整个字符数组
  2. 把寻找1中没个元素包含的字符类型
  3. 把字符类型作为建,同一类型的原始字符存放到list中作为建对应的值
def long2(s):
    length = len(s)
    dict1 = {}
    dict2 = {}
    res = 0
    for string in s:
        list1=[]
        for i in range(len(string)):
            if string[i] not in list1:
                list1.append(string[i])
            tmp = ''.join(list1) 
            
        if tmp not in dict2:
            list2=[]
            list2.append(string)
            dict2[tmp] = list2
        else:
            list2=dict2[tmp]
            list2.append(string)
            dict2[tmp]=list2
        
    
    for k,v in dict2.items():
        dict1[k]=len(v)

    return(dict1,dict2)


          
if __name__ == '__main__':
    s = ["ab","abcd","abb","abcddd","abbb","ccd"]
    print(long2(s))

输出结果:

({'ab': 3, 'abcd': 2, 'cd': 1}, {'ab': ['ab', 'abb', 'abbb'], 'abcd': ['abcd', 'abcddd'], 'cd': ['ccd']})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值