codewars练习(javascript)-2021/4/2

本文分享了三个Codewars上的JavaScript练习:计数字除法次数、检测数组中回文数并转换、验证字符串由字典单词组成。通过实例展示了如何解决这些技术问题。

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

codewars-js练习

2021/4/2

github 地址

my 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>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值