zoukankan      html  css  js  c++  java
  • 1632. 电子邮件组的个数

    1632. 电子邮件组的个数

    中文English

    给定一个n个邮件地址字符串的数组.
    求出电子邮件组的数量,每个组应具有多个电子邮件地址(地址可以重复)。如果两个字符串在转换后具有相同的值,则它们位于同一组中。

    邮件地址处理时遵循以下规则:

    1. 在字符`'@'之前忽略所有的字符 '.'.
    2. 在字符`'@'之前忽略字符 '+'以及它后面的所有子字符串.

    样例

    样例1

    输入: emails = ["abc.bc+c+d@jiuzhang.com", "abcbc+d@jiuzhang.com", "abc.bc.cd@jiuzhang.com"]
    输出: 1
    解释:
    这里只有一个email group. 是 "abcbc@jiuzhang.com".
    

    样例2

    输入: emails = ["abc.b+c+d@jiuzhang.com", "abcbc+d@jiuzhang.com", "abc.bc.cd@jiuzhang.com"]
    输出: 0
    解释:
    这里不存在email group.
    

    注意事项

    电子邮件组至少有两个相同的电子邮件地址

    class Solution:
        """
        @param emails: Original email
        @return: Return the count of groups which has more than one email address in it.
        """
        def countGroups(self, emails):
            # Write your code here
            if not emails: return 0
    
            emails_dict = {}
            count = 0
    
            #首先先筛一遍
            for email in emails:
                temp_email = ''
                index = -1
                split_email = email.split('@')
                email, later_email = split_email[0], split_email[1]
                length = len(email)
    
                while index < length - 1:
                    index += 1
                    if email[index] == '.':
                        continue
                    elif email[index] == '+':
                        right = index + 1 
                        while right < length:
                            if email[right] == '+':
                                break
                            right += 1
                        
                        #更新
                        index = right - 1
                    else:
                        temp_email += email[index]
    
                if temp_email + '@' + later_email not in emails_dict.keys():
                    emails_dict[temp_email + '@' + later_email] = 1 
                else:
                    emails_dict[temp_email + '@' + later_email] += 1
            
            #判断
            for val in emails_dict.values():
                if val > 1:
                    count += 1 
            
            return count
  • 相关阅读:
    表操作
    mysql表的完整性约束
    mysql支持的数据类型
    数据库存储引擎
    Navicat工具、pymysql模块、数据备份
    数据库一
    IO模型
    协成
    线程
    进程
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/14160467.html
Copyright © 2011-2022 走看看