【Leetcode】929. Unique Email Addresses

题目地址:

https://leetcode.com/problems/unique-email-addresses/

给定若干邮箱地址,要求用户名部分按照这样的方式解析:如果遇到小数点则忽略,遇到加号则忽略其后的所有字符。问这些邮箱地址解析后有多少个不同的。代码如下:

import java.util.HashSet;
import java.util.Set;

public class Solution {
    public int numUniqueEmails(String[] emails) {
        Set<String> set = new HashSet<>();
        for (String email : emails) {
        	// 把@找到,分离域名和用户名
            int at = email.indexOf('@');
            String host = email.substring(at);
            StringBuilder name = new StringBuilder();
            for (int i = 0; i < at; i++) {
                char ch = email.charAt(i);
                if (ch == '+') {
                    break;
                }
                if (ch != '.') {
                    name.append(ch);
                }
            }
            
            set.add(name.append(host).toString());
        }
        
        return set.size();
    }
}

时空复杂度O(nl)O(nl)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章