| | function triangle(row) {
const pair2one = {
RR: 'R',
BB: 'B',
GG: 'G',
RB: 'G',
BR: 'G',
RG: 'B',
GR: 'B',
BG: 'R',
GB: 'R'
}
let rowArr = row.split('');
let limit;
let a;
let ab;
for (let i = rowArr.length; i > 1; i--) {
a = rowArr[0];
for (let j = 1; j < i; j++) {
ab = pair2one[ a + rowArr[j] ];
a = rowArr[j];
rowArr[j - 1] = ab;
}
}
return rowArr[0];
}
function triangle(row) {
const pair2one = {
RR: 'R',
BB: 'B',
GG: 'G',
RB: 'G',
BR: 'G',
RG: 'B',
GR: 'B',
BG: 'R',
GB: 'R'
}
let a, ab;
for (let i = row.length; i > 1; i--) {
a = row[0];
for (let j = 1; j < i; j++) {
ab = pair2one[ a + row[j] ];
a = row[j];
row = row.slice(0, j - 1) + ab + row.slice(j);
}
}
return row[0];
}
function triangle(row) {
const pair2one = {
RR: 'R',
BB: 'B',
GG: 'G',
RB: 'G',
BR: 'G',
RG: 'B',
GR: 'B',
BG: 'R',
GB: 'R'
}
const repeater = match => match + match;
const replacer = match => pair2one[match];
for (let i = row.length; i > 1; i--) {
row = ( row[0] + row.slice(1, -1).replace( /./g, repeater ) + row[row.length - 1] )
.replace( /../g, replacer );
}
return row[0];
}
|