紀錄 CodeWars 的刷題過程、解答、衍伸想法。
不定期更新唷~。
6kyu
Counting Duplicates
日期:20221029
題目:
1 2 3 4 5 6 7 8
| 計算字串中,有幾個重複出現的元素?
EX: "abcde" -> 0,沒有任何重複。 "aabbcde" -> 2,a 跟 b 重複,共兩個。 "aabBcde" -> 2,a 跟 b 重複,共兩個。大寫 B 等同於 小寫 b。 "aA11" -> 2,a 跟 1 重複,共兩個。 "ABBA" -> 2,A 跟 B 重複,共兩個。
|
答案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let duplicateCount = text => { let total=0;
let obj = text.toLowerCase().split('').reduce((accumulator, currentValue)=>{ if(accumulator[currentValue]) { accumulator[currentValue] ++; } else { accumulator[currentValue] = 1; } return accumulator; }, {});
Object.values(obj).forEach(i => i >= 2 ? total++ : total); return total; }
|
大約花兩小時解題。
就不另外想一行解法,免得到時回看看不懂自己的邏輯。
也是第一次嘗試reduce()
方法,有熟悉一點,挺高興的!
解出來後看大神們的答案都寫好短喔😢 ,也是有進步空間,繼續加油!
Count characters in your string
日期: 20221106
題目:
1 2
| 計算字串中同樣字的數量, 例:"aba" -> {'a': 2, 'b': 1},如果字串是空的則返回空物件。
|
答案:
1 2 3 4 5
| let count = string => { let obj = {}; string.split('').forEach( i => obj[i] ? obj[i] += 1 : obj[i] = 1); return obj; }
|