文章目录
codewars-js练习
2021/3/30
github 地址
【1】<8kyu>【FIXME: Replace all dots】
example:
"one.two.three"//"one-two-three"
solution
<script type="text/javascript">
var replaceDots = function(str) {
return str.replace(/[.]/g, '-');
}
// 验证
console.log(replaceDots("one.two.three"));//"one-two-three"
</script>
【2】<8kyu>【Reversed sequence】
example:
5// [5, 4, 3, 2, 1]
solution
<script type="text/javascript">
const reverseSeq = n => {
var arr = [];
for(var i=n;i>0;i--){
arr.push(i);
}
return arr;
};
// 验证
console.log(reverseSeq(5));// [5, 4, 3, 2, 1]
</script>
【3】<5kyu>【Scramblies】
如果str1的部分字符可以重新排列以匹配str2,则返回true,否则返回false
example:
scramble('rkqodlw', 'world') ==> True
scramble('cedewaraaossoqqyt', 'codewars') ==> True
scramble('katas', 'steak') ==> False
solution
<script type="text/javascript">
function scramble(str1, str2) {
var arr1 = str1.split("").sort();
var arr2 = str2.split("").sort();
var i = 0;
for(var x = 0; i<arr2.length && x<=arr1.length; x++) {
if(arr2[i] === arr1[x]) {
i++;
}
}
return (x <= arr1.length);
}
// 验证
console.log(scramble('rkqodlw','world'));//true
// console.log(scramble('cedewaraaossoqqyt','codewars'));//true
console.log(scramble('katas','steak'));//false
</script>
function scramble(str1, str2) {
var count = Object.create(null);
Array.prototype.forEach.call(str1, function(a) {
count[a] = (count[a] || 0) + 1;
});
return Array.prototype.every.call(str2, function(a) {
return count[a]--;
});
}