今天就用母音計數唄,看起來很潮
讓我回想起當年學KK音標的感覺(?
今天的題目非常的貼心,你不需要考慮到大小寫的問題,因為他只會輸入小寫XDDD跟空白
簡單來說 計算字串中的a、e、y、o、u的數量,就可以囉
題目看清楚了就來拆一下題目吧!
今天的題目跟昨天比較起來簡單好幾倍啊(有嘛? 好像差不多簡單XD
首先來吧! Test Code!!!
[TestMethod]
public void Input_a_Should_Be_1()
{
Assert.AreEqual(1, Kata.GetVowelCount("a"));
}
而Production Code 也就是老樣子會長成這個樣子
public class Kata
{
public static int GetVowelCount(string str)
{
throw new NotImplementedException();
}
}
老樣子,跑個測試,沒過很正常,commit一下
接下來把Production Code改一下,用最小步伐讓Test Case Pass吧!
考慮到計算他,所以就用Linq的Count方法把它做掉吧!
public static int GetVowelCount(string str)
{
return str.Count(x => x.Equals('a'));
}
接下來跑個測試,PASS!
接下來寫針對計算a這個字元的測試案例吧!
都通過之後就再加上e的測試吧!
[TestMethod]
public void Input_e_Should_Be_1()
{
Assert.AreEqual(1, Kata.GetVowelCount("e"));
}
接下來跑一下測試吧,紅燈! Commit!
接下來只要在Count後面多一個OR的判斷就可以通過測試了
public static int GetVowelCount(string str)
{
return str.Count(x => x.Equals('a') || x.Equals('e'));
}
現在我們完成他了,就來跑個測試,PASS,Commit一下唄!
接下來照著補上測試案例,然後Production Code也跟著補上。
public static int GetVowelCount(string str)
{
return str.Count(x => x.Equals('a') || x.Equals('e') || x.Equals('i') || x.Equals('o') || x.Equals('u'));
}
然後再Codewars上提交! Pass!!
通過! PASS! YA!
老樣子我最喜歡的部分就是去看看別人寫這題寫得怎麼樣XD
哇勒,我怎麼沒想到可以反向思考呢…..
難怪我總覺得我的code一直重複那個Equals好像不是很好 QQ
看來還可以再加強了
https://github.com/SQZ777/Codewars_VowelCount
下一題,明天見!