文章目录
codewars-js练习
2021/4/2
github 地址
【1】<7kyu>【Number of Divisions】
计算一个数字能被一个给定的数字除多少次。
example:
1. 100 / 2 = 50
2. 50 / 2 = 25
3. 25 / 2 = 12 remainder 1
4. 12 / 2 = 6
5. 6 / 2 = 3
6. 3 / 2 = 1 remainder 1
solution
<script type="text/javascript">
const divisions = (n, divisor) => {
var count = 0;
var d = n;
while(Math.floor(d/divisor)!=0){
count ++;
d = d/divisor;
}
// console.log(count)
return count;
};
// 验证
console.log(divisions(6, 2));//2
console.log(divisions(100, 2));// 6
console.log(divisions(9999, 3));// 8
console.log(divisions(2, 3));//0
console.log(divisions(5, 5));// 1
</script>
【2】<7kyu>【Palindromes Here and There】
一个包含回文数和非回文数的数组。回文数是一个顺序颠倒后仍然相同的数。例如,122不是回文数,但202是1。
您的任务是编写一个函数,返回一个只有1和0的数组,其中所有回文数字被替换为1,所有非回文数字被替换为0。
example:
[101, 2, 85, 33, 14014] ==> [1, 1, 0, 1, 0]
[45, 21, 303, 56] ==> [0, 0, 1, 0]
solution
<script type="text/javascript">
function convertPalindromes(numbers) {
// console.log(numbers)
var arr = [];
for(var i=0;i<numbers.length;i++){
if(numbers[i].toString().split('').reverse().join('') == numbers[i].toString())arr.push(1);
else arr.push(0);
}
return arr
};
// 验证
console.log(convertPalindromes([101, 2, 85, 33, 14014]));//[1,1,0,1,0]
console.log(convertPalindromes([45, 21, 303, 56] ));//[0,0,1,0]
</script>
【3】<6kyu>【Valid string】
给定一个有效的单词序列和一个字符串。测试字符串是否由数组中的一个或多个单词组成。
测试字符串是否可以通过连接字典中的单词完全形成。
example:
string[] dictionary = ["code", "wars"];
string s = "codewars"; // true -> match 'code', 'wars'
string s1 = "codewar"; // false -> match 'code', unmatched 'war'
solution
<script type="text/javascript">
var validWord = function(dictionary, word) {
console.log(dictionary,word)
reg = new RegExp('^(' + dictionary.join('|') + ')+$');
return reg.test(word);
};
// 验证
// console.log(validWord(['code', 'wars'], 'codewars'));//true
// console.log(validWord(['code', 'wars'], 'codewar'));// false
// console.log(validWord(['ab', 'a', 'bc'], 'abc'));// true
// console.log(validWord(['a', 'b', 'c', 'd', 'e', 'f'], 'abcdefg'));// false
console.log(validWord(['code', 'wars'], 'code'));//true
</script>