zoukankan      html  css  js  c++  java
  • 【leetcode】893. Groups of Special-Equivalent Strings

    题目如下:

    解题思路:本题比较简单。题目要求的是字符只能在相同的奇偶性之间互换,即奇数位只能和奇数位交换,偶数位只能和偶数位换。根据这一准则,对于任意一个字符串,我们可以分别求出其奇数位和偶数位的部分,然后分别进行排序,再合并,这样就能得到一个special value,例如 "abcd",奇数位为"bd",偶数位为“ac”,排序合并后"ac#bd" (#为定界符)。所有special value相同的字符串即为所属于同一个组。

    代码如下:

    class Solution(object):
        def numSpecialEquivGroups(self, A):
            """
            :type A: List[str]
            :rtype: int
            """
            dic = {}
            for num in A:
                odd = []
                even = []
                for i,v in enumerate(num):
                    if i % 2 == 1:
                        odd.append(v)
                    else:
                        even.append(v)
                odd.sort()
                even.sort()
                special = ''.join(even) + '#' + ''.join(odd)
                if special not in dic:
                    dic[special] = 1
            return len(dic)
            
  • 相关阅读:
    网络编程IO模型
    网络编程四层模型
    签到赛--我打的
    签到赛--ipip
    初见RCE(远程命令/代码执行漏洞)
    [ACTF2020 新生赛]Include
    文件上传+[SUCTF 2019]CheckIn
    古典密码,背包密码,RSA
    第八章小结
    第七章小结
  • 原文地址:https://www.cnblogs.com/seyjs/p/9537599.html
Copyright © 2011-2022 走看看