Необходимо строку в файле (в аттаче) длинной 50000 символов отсортировать по маске Xx и xX и удалить их из строки.
Т.е. строка QWERTYUuytrewqio - возвратит io (удаляя по порядку Uu, Yy, Tt, Rr, Ee, Ww, Qq,) соотвественно уисИвВиВСИвВвиУИ возвратит уисВСИвиУИудаляя вВ, Ии, вВ или Вв
Мой алгоритм простенький, но как говориться на что пока могем :) Написано для Node.js - переправить в JS обычный можно без труда.
Мой ответ 9526 элементов массива осталось, из 50к после сортировки. Может кто-то подскажет лучше решение или ошибки есть? Благодарю за ответ заранее.
var fs = require('fs');
var str = fs.readFileSync('1.txt') + '';
var arr = [];
var arr = str.split('');
var con = true;
while(con) {
con = false;
poly(arr);
}
function poly(arr) {
for(var i = 0; i <= str.length; i++) {
for(var j = i+1; j <= arr.length; j++) {
if (arr[j] === arr[i].toLowerCase() && arr[i] !== arr[j] ||
arr[j] === arr[i].toUpperCase() && arr[i] !== arr[j] )
{
arr.splice(i, 2).toString();
return con = true;
} else i++;
}
}
return con = false;
}
console.log("Final array is : " + arr.toString());
console.log("Array length is : " + arr.length);
Файл со строкой
Это был 5 день челленджа кодинга перед рождеством - взятый с adventofcode. Сегодня сам дошел как и что)
var fs = require('fs');
var str = fs.readFileSync('1.txt') + "";
var con = true;
while(con) {
con = false;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) === (str.charCodeAt(i+1) + 32) ||
str.charCodeAt(i) === (str.charCodeAt(i+1) - 32)) {
str = str.replace((str[i] + str[i+1]), "" )
con = true;
}
}
}
console.log("String is : " + str);
console.log("String length is : " + str.length);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости