Link to challenge
基本上,这个想法是如果一只老鼠-
O~
-面对吹笛手-
P
-那就走对了。
这里有只老鼠往左走:
O型~
这是一只老鼠向右转:
~O
我们想知道有多少“聋哑老鼠”存在于一根绳子里——有多少人面临错误的道路。
这里,有一只聋老鼠:
P O~ O~ ~O O~
我的逻辑是首先检查Piper是否在字符串的左侧或右侧。
如果他没有,那么我们需要根据吹笛手在琴弦上的位置来分割琴弦,然后计算出左侧有多少老鼠没有面对他,右侧有多少老鼠没有面对他。
var countDeafRats = function(town) {
town = town.replace(/[ ]/g, '');
let deafCount = 0;
//if piper's on the left
if (town[0] === 'P') {
for (let i = 0; i < town.length; i++) {
if (town[i] === '~O') {
deafCount ++;
}
}
}
//if piper's on the right
if (town[town.length - 1] === 'P') {
for (let j = 0; j < town.length; j++) {
if (town[j] === 'O~') {
deafCount ++;
}
}
}
let rats = town.split('P');
console.log('ratssss', rats);
let leftRats = [];
let rightRats = [];
return deafCount;
}
console.log(countDeafRats("~O~O P ~O~O"));
在上面的例子中,这里是一组老鼠:
[ '~O~O', '~O~O' ]
所以右边有两只老鼠走错了路(聋老鼠)。
我想做的是,把左右老鼠按成各自的数组,然后在每个单独的数组中数聋老鼠。
但我不能拆线
~O~O
或者
~O个
或
O型~
.
我想得到
['~O', '~O']
对于
leftRats
和
['~O','~O']
对于
rightRats
.
我试过:
leftRats.push(rats[0].split('~O'));
rightRats.push(rats[1].split('O~'));
console.log('leftRatsssss', leftRats);
console.log('rightRatssss', rightRats);
但它所做的事情与预期的完全不同:
leftRatsssss [ [ '', '', '' ] ]
rightRatssss [ [ '~', 'O' ] ]
分裂
不拆分字符串
通过
作为参数给定的字符串。所以这才是我问题的关键所在,那么-你怎么能用一组特定的字符分割一个字符串呢?
一、 e.如果我想拆线
'the'
通过
'he'
,我想要
“那个”
变成
['t', 'he']
-我为这个案子试过正则表达式?
console.log("the".split(/[he]/gi));
它似乎与我想要的相反。那么,对于按给定字符集拆分字符串有什么建议吗?