Chiayin's blog

【刷題】CodeWars-6kyu

字數統計: 326閱讀時間: 1 min
2022/11/12

紀錄 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;
}

發佈日期:2022-11-12

更新日期:2022-11-12

CATALOG
  1. 1. 6kyu
    1. 1.1. Counting Duplicates
    2. 1.2. Count characters in your string