【LeetCode】解析_929. Unique Email Addresses

929. Unique Email Addresses

難易度:Easy 

參考及出處網站:Leetcode

*慎入 (第一次解法,沒有寫得很詳盡)

這題我的步驟是

  1. 拆開名稱以及domain
  2. 如果名稱有dot .的話 直接取代
  3. 如果名稱有+ ,忽略+號之前內容
函式庫使用方法: 
  1. HashSet:HashSet就是一個集合,如果hash物件裡面相同只會存在一個 詳盡文件:Docs
  2. String.IndexOf: 報告這個執行個體中指定之 Unicode 字元或字串第一次出現時的所在索引 (以零為起始)。 如果在此執行個體中找不到該字元或字串,此方法會傳回 -1。 Docs
  3. Substring:截取某長度的字串 Docs

我的第一次解法:

 public static int NumUniqueEmails(string[] emails)
        {
            var set = new HashSet<string>();
            for (int i = 0; i < emails.Length; i++)
            {
                var atNum = emails[i].IndexOf("@");
                string frontStr = emails[i].Substring(0,atNum);
                string backStr = emails[i].Substring(atNum, emails[i].Length- frontStr.Length);
                frontStr = frontStr.Replace(".", "");
                var addNum = frontStr.IndexOf("+");
                if (addNum != -1)
                {
                    frontStr=frontStr.Substring(0, addNum);
                }
                set.Add(frontStr + backStr);
            }
            return set.Count;
        }

我的解法共

Runtime: 152 ms, faster than 39.04% of C# online submissions for Unique Email Addresses.

Memory Usage: 26.5 MB, less than 100.00% of C# online submissions for Unique Email Addresses.

花的時間有點長 所以之後還會修正 ^ ^

 

 

主要是做我的學習筆記

偶而心血來潮寫個幾篇~

若有問題~可以寫信或在下方留言~感謝