Last active
December 7, 2016 00:28
-
-
Save s7etozar/5940df859ba3092110875d3fe602c79a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Функция searchСommonLetters() ищет в строке n наиболее часто встречающихся букв и выводит эту строку с выделенными буквами. | |
searchСommonLetters('Алиса сидела со старшей сестрой на берегу и маялась: делать ей было совершенно нечего, а сидеть без дела, сами знаете, дело нелегкое; раз-другой она, правда, сунула нос в книгу, которую сестра читала, но там не оказалось ни картинок, ни стишков. "Кому нужны книжки без картинок или хоть стишков, не понимаю!" - думала Алиса. С горя она начала подумывать (правда, сейчас это тоже было дело не из легких - от жары ее совсем разморило), что, конечно, неплохо бы сплести венок из маргариток, но плохо то, что тогда нужно подниматься и идти собирать эти маргаритки, как вдруг... Как вдруг совсем рядом появился белый кролик с розовыми глазками! Тут, разумеется, еще не было ничего такого необыкновенного; Алиса-то не так уж удивилась, даже когда услыхала, что Кролик сказал (а сказал он: "Ай-ай-ай! Я опаздываю!"). Кстати, потом, вспоминая обо всем этом, она решила, что все-таки немножко удивиться стоило, но сейчас ей казалось, что все идет как надо. Но когда Кролик достал из жилетного кармана (да-да, именно!) ЧАСЫ (настоящие!) и, едва взглянув на них, опрометью кинулся бежать, тут Алиса так и подскочила! Еще бы! Ведь это был первый Кролик в жилетке и при часах, какого она встретила за всю свою жизнь! Сгорая от любопытства, она со всех ног помчалась вдогонку за Кроликом и, честное слово, чуть-чуть его не догнала! Во всяком случае, она поспела как раз вовремя, чтобы заметить, как Белый Кролик скрылся в большой норе под колючей изгородью.', 3); | |
function searchСommonLetters(str, n) { | |
var strCopy = str.replace(/[^а-яА-ЯЁёa-zA-Z]/g, ''); // лучше удалить из текста все символы кроме букв, так как их считать по условию не надо | |
for (var strCutCopy = strCopy, i = 0, nMax = 0, regexp, arrMatch = [], symbolMax; i < n; i++) { | |
while (strCutCopy.length != 0) { // будем искать все в более и более короткой строке (строка в переменной strCutCopy будет укорачиваться при каждой итерации цикла while) | |
regexp = new RegExp( strCutCopy.charAt(0), 'g' ); | |
arrMatch = strCutCopy.match(regexp); // метод вернет массив, например [а,а,а,а,а] с длиной 5, значит буква "а" встретилась в тексте 5 раз | |
if (arrMatch.length >= nMax) { // если данная буква встречается чаще (или с такой же частотой) чем предыдущая, которую мы искали... | |
nMax = arrMatch.length; // частота встречаемости данной буквы | |
symbolMax = strCutCopy.charAt(0); // та буква, которую мы искали, встречается чаще чем предыдущая, нужно запомнить какая именно | |
} | |
arrMatch = []; | |
strCutCopy = strCutCopy.replace(regexp, ''); // удаление всех повторений буквы которую мы уже искали и перезапись strCutCopy для того чтобы строка strCutCopy стала короче на след. итерации цикла while | |
} | |
console.log('Буква "' + symbolMax + '" встречается в тексте ' + nMax + ' раз(а)'); | |
nMax = 0; | |
regexp = new RegExp(symbolMax, 'g'); | |
strCutCopy = strCopy = strCopy.replace(regexp, ''); | |
str = str.replace(regexp, '<span style = \'color: blue; font-weight: bold\'>' + symbolMax + '</span>'); | |
} | |
document.write(str + '<br>'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment