Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Spaceship Landing Strip by mortonfox
// https://js.checkio.org/mission/spaceship-landing-strip/
import assert from "assert";
function landingArea(area: string[]): number {
let max_rect = 0;
for (let row = 0; row < area.length; ++row) {
for (let col = 0; col < area[row].length; ++col) {
let max_len = area[row].length;
for (let l = row; l < area.length; ++l) {
let m = area[l].slice(col).match(/^[GS]*/);
max_len = Math.min(m[0].length, max_len);
if (max_len === 0) break;
max_rect = Math.max(max_len * (l - row + 1), max_rect);
}
}
}
return max_rect;
}
var checkio = landingArea;
console.log('Example:');
console.log(landingArea(['G']));
// These "asserts" are used for self-checking
assert.equal(landingArea(['G']), 1);
assert.equal(landingArea(['GS', 'GS']), 4);
assert.equal(landingArea(['GT', 'GG']), 2);
assert.equal(landingArea(['GGTGG',
'TGGGG',
'GSSGT',
'GGGGT',
'GWGGG',
'RGTRT',
'RTGWT',
'WTWGR']), 9);
assert.equal(landingArea(['GSWGG', 'SGRST', 'WGSRS', 'RSSST']), 4);
assert.equal(landingArea(['GSWGG',
'SGRST',
'WGSRS',
'RSSST',
'RGTWW']), 5);
assert.equal(landingArea(['GSGSS',
'GWSRS',
'SWSTG',
'GGSGG',
'GGSGG']), 10);
assert.equal(landingArea(['GWGWS',
'RSRGR',
'TTTTT',
'TGGGT',
'TGGGT']), 6);
assert.equal(landingArea(['GGGGGG',
'GGGGGG',
'SSSSSS',
'SSSSSS',
'GGGGGG',
'GGGGGG']), 36);
assert.equal(landingArea(['RRRRRRR',
'RGGGGGR',
'RGSSSGR',
'RGSSSGR',
'RGSSSGR',
'RGGGGGR',
'RRRRRRR']), 25);
console.log("Coding complete? Click 'Check' to earn cool rewards!");
March 13, 2021