每周完成一個(gè)ARTS: 每周至少做一個(gè) leetcode 的算法題、閱讀并點(diǎn)評(píng)至少一篇英文技術(shù)文章、學(xué)習(xí)至少一個(gè)技術(shù)技巧择吊、分享一篇有觀點(diǎn)和思考的技術(shù)文章沿量。(也就是 Algorithm、Review、Tip、Share 簡(jiǎn)稱ARTS)
Algorithm
LeetCode 929.Unique Email Addresses鏈接解題語(yǔ)言 C#
題目 :
每封電子郵件都由一個(gè)本地名稱和一個(gè)域名組成,以 @ 符號(hào)分隔绷杜。
例如,在 alice@leetcode.com中濒募, alice 是本地名稱鞭盟,而 leetcode.com 是域名。
除了小寫字母萨咳,這些電子郵件還可能包含 ',' 或 '+'懊缺。
如果在電子郵件地址的本地名稱部分中的某些字符之間添加句點(diǎn)('.'),則發(fā)往那里的郵件將會(huì)轉(zhuǎn)發(fā)到本地名稱中沒有點(diǎn)的同一地址。例如鹃两,"alice.z@leetcode.com” 和 “alicez@leetcode.com” 會(huì)轉(zhuǎn)發(fā)到同一電子郵件地址遗座。 (請(qǐng)注意,此規(guī)則不適用于域名俊扳。)
如果在本地名稱中添加加號(hào)('+')途蒋,則會(huì)忽略第一個(gè)加號(hào)后面的所有內(nèi)容。這允許過濾某些電子郵件馋记,例如 m.y+name@email.com 將轉(zhuǎn)發(fā)到 my@email.com号坡。 (同樣,此規(guī)則不適用于域名梯醒。)
可以同時(shí)使用這兩個(gè)規(guī)則宽堆。
給定電子郵件列表 emails,我們會(huì)向列表中的每個(gè)地址發(fā)送一封電子郵件茸习。實(shí)際收到郵件的不同地址有多少畜隶?
示例:
輸入:["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
輸出:2
解釋:實(shí)際收到郵件的是 "testemail@leetcode.com" 和 "testemail@lee.tcode.com"。
【 參考代碼 】
public int NumUniqueEmails(string[] emails)
? ? ? ? {
? ? ? ? ? ? HashSet<string> ht = new HashSet<string>();//定義一個(gè)為 string類型的哈希表
? ? ? ? ? ? for (int i = 0; i < emails.Length; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int index1 = emails[i].IndexOf('@');//獲取字符串中@索引值
? ? ? ? ? ? ? ? string local = emails[i].Substring(0, index1);//將@之前的字符串存儲(chǔ)起來
? ? ? ? ? ? ? ? string rest = emails[i].Substring(index1);//將@后綴存儲(chǔ)
? ? ? ? ? ? ? ? if (local.Contains("+"))
? ? ? ? ? ? ? ? { local = local.Substring(0, local.IndexOf('+')); }//將 ‘ + ’ 后面包括+號(hào)全部去除
? ? ? ? ? ? ? ? local = local.Replace(".", "");//替換掉無用的.
? ? ? ? ? ? ? ? ht.Add(local + rest);//將郵箱前綴與后綴組合起來
? ? ? ? ? ? }
? ? ? ? ? ? return ht.Count();//返回哈希表有效元素個(gè)數(shù)号胚,哈希表中只保存不重復(fù)項(xiàng)
? ? ? ? }
Review
The Key To Accelerating Your Coding Skills(中英文對(duì)照版)鏈接文章是耗子叔在專欄推薦過的籽慢,不知道有多少人看下去了呢?感悟:編程并非一日之功猫胁,源于興趣箱亿,亦成于興趣。只要選對(duì)確的方法去努力一定能看到效果弃秆。不必超于常人届惋,你只需和常人一般便已非凡
Tip
http://unbug.github.io/codelf/ 一個(gè)變量命名查詢的網(wǎng)址,相信很多初學(xué)者對(duì)于變量命名感到非臣蒈睿苦惱這個(gè)網(wǎng)站可以讓你的網(wǎng)站根據(jù)你的編程語(yǔ)言匹配出你想要定義的變量可用哪些合適的變量名盼樟,對(duì)于新手我覺得應(yīng)該非常實(shí)用了氢卡。
share
文章鏈接分享的是我根據(jù)耗子叔 《 程序員練級(jí)攻略 》推薦的 C 語(yǔ)言的書 《 C 語(yǔ)言程序設(shè)計(jì) 現(xiàn)代方法 》第二版 一星期的筆記整理锈至, 從 C# 回到 C 我感覺自己又多了許多收獲, 很多知識(shí)盲點(diǎn)译秦, 爭(zhēng)取在這個(gè)月過完這本書峡捡。