1.重复的子字符串
题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
思路:可以遍历从下标0到长度的一半,如果当前的长度除总长度的余数为0,说明长度可以整除。然后重复这个字符串到总长度,和原字符串相比,如果相等,则满足条件。如果到l/2还没找到相等的,则不满足条件
/**
* @param {string} s
* @return {boolean}
*/
var repeatedSubstringPattern = function(s) {
const l = s.length;
if (l < 2) return false;
for (let i = 1; i <= l / 2; i++) {
if (!(l % i) && s.slice(0, i).repeat(l / i) === s) return true;
}
return false;
};
2.汉明距离
题目:
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
思路:转成二进制然后计算
/**
* @param {number} x
* @par