最近接觸到 codewars, 可以在這兒瞭解自己的程式碼水平, 感覺自己的計算機基礎真的好菜...
擴充套件閱讀建議
- 整個科學上網工具.
- 和 翻譯外掛有一腿.
一道讓人情何以堪的題
找到一個整型陣列裡面, 出現次數為奇數次的那個元素, 假設只有一個.
我的程式碼是醬紫寫的:
function findOdd(A) {
if (A.length === 1) {
return A[0];
}
const map = {};
A.forEach((v) => {
if (String(v) in map) {
map[v] += 1;
} else {
map[v] = 1;
}
});
for (let prop in map) {
if (map[prop] % 2 === 1) {
return Number(prop);
}
}
throw new Error('params invalid: should provide a number[]');
}複製程式碼
然而別人的程式碼是醬紫寫的:
const findOdd = (xs) => xs.reduce((a, b) => a ^ b);複製程式碼
使用異或來解決這個問題, 不得不服, 因為呀, 任對於任意數a, b:
a ^ b ^ b === a;複製程式碼
異或兩次就變回來了額... 所以, 多寫程式碼, 自發的去學習別人的優點, 是非常不錯的方式.
推薦
百度軟體中心, 可以下載到 google
, 官方沒有 zg 版.
科學上網需要你自己解決, 提示 SSR
.
google 的翻譯外掛 translate
真的幫到我不少, 有一定的英語水平, 又不是很高, 非常合適.