codewars练习(javascript)-2021/3/30

本文记录了三道 Codewars JavaScript 练习题,包括替换所有点号、反转序列以及判断字符串是否能通过重新排列形成目标字符串。通过示例代码展示了如何解决这些问题,涉及字符串处理和数组操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

codewars-js练习

2021/3/30

github 地址

my 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]--;
	    });
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值