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

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