iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
0
自我挑戰組

Daily Coding!一日一刷題系列 第 2

Day01|Weekly Coding Challenges

本來有點苦惱今天要刷哪幾題,
結果早上就收到 Codewars 的 Weekly Coding Challenges 的信件~
就決定是尼了!洨智(X)

https://ithelp.ithome.com.tw/upload/images/20190904/20107480f4piDiKf34.png
(圖源來自:我信箱的信件)

網路上有很多介紹 Codewars 的文章,
這邊就不多做敘述了~
不過讓我感到有刷題的動力就是把學校中有玩這個平台的學長姐幹掉(X
另外看到自己的 Honor 高也是很開心啦 ˊˇˋ


8kyu. Find the Integral

Create a function that finds the integral of the expression passed.

In 3x^2, for example, the integral would be 1x^3 (we added 1 to the exponent, and divided the coefficient by that new number).

integrate(3,2) // => "1x^3"
integrate(12,5) // => "2x^6"

簡單講就是積分啦,
相信大家都會(O

如果不太懂英文的話沒關係,
可以試著從範例測資中推答案~

# Python
def integrate(coefficient, exponent):
    return str(coefficient // (exponent+1)) + "x^" + str(exponent+1)

7kyu. Alphabetical Addition

Your task is to add up letters to one letter.

Notes:

Letters will always be lowercase.
Letters can overflow (see second to last example of the description)
No letters should return 'z'

Examples:

add_letters('a', 'b', 'c') = 'f'
add_letters('a', 'b') = 'c'
add_letters('z') = 'z'
add_letters('z', 'a') = 'a'
add_letters('y', 'c', 'b') = 'd' # notice the letters overflowing
add_letters() = 'z'

這題稍微花了十幾分鐘想了一下,
大致上看完範例測資就能找到規律。

當串列沒東西時,
也就是代表加總起來為 0,就會輸出 'z'。
由此可知 z = 0。

再來看其他測資就可以推出,
z = 0, a = 1, b = 2, ... y = 25。

def add_letters(*letters):
    l = "zabcdefghijklmnopqrstuvwxy"
    num = 0
    if not letters:
        return 'z'
    else:
        for i in letters:
            num += l.index(i)
        return l[num%26]

提交過後就看到一堆大佬的寫法,
不得不說 Codewars 總是能讓我大(ㄊㄡ)開(ㄒㄩㄝˊ)眼(ㄗㄨㄛˋ)界(ㄈㄚˇ) XD

大致上很多人都直接使用 List Comprehensions 一兩行搞定,
不過這邊也不方便貼其他人的程式,
有興趣就麻煩大家自己寫看看並提交囉~

今天就這兩題了,
明天再試著解看看另外兩題~
大家晚安~


上一篇
Day00|從零開始的刷題生活
下一篇
Day02|Codewars 刷題日 (1)
系列文
Daily Coding!一日一刷題7

尚未有邦友留言

立即登入留言