神奇字符串:JavaScript 中的问题
问题
一种神奇字符串 str 仅包含 '1' 和 '2',并遵守以下规则 -
字符串 str 是神奇的,因为连接连续出现的字符 '1' 和 '2' 的数量会生成字符串 str 本身。
字符串 str 的前几个元素如下 -
str = "1221121221221121122……"
如果我们对 str 中连续的 '1' 和 '2' 进行分组,它将是 -
1 22 11 2 1 22 1 22 11 2 11 22 ......
且每组内 '1' 或 '2' 的出现次数为 -
1 2 2 1 1 2 1 2 2 1 2 2 ......
我们可以看到上面的出现顺序就是字符串本身。
我们得到一个整数 num 作为输入,并且我们需要返回神奇字符串 str 中 num 的第一个数字中 '1' 的数量。
例如,如果函数的输入是 -
const num = 6;
那么输出应该是 -
const output = 3;
输出说明
神奇字符串 S 的前 6 个元素是 "12211",它包含三个 1,因此返回 3。
示例
此代码为 -
const num = 6;
const magicalString = (num = 1) => {
let ind = 12;
let str = '1221121221221121122';
while(str.length < num){
const end = str.substring(str.length - 1) === '2' ? '1' : '2';
str = parseInt(str.substring(ind, ind + 1)) === 2 ? str + end + end : str + end;
ind++;
};
return (str.substring(0, num).match(/1/g)||[]).length;
};
console.log(magicalString(num));输出
控制台中的输出将为 -
3
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP