Sobes.tech
Back to questions
Senior
5

Алгоритмическая задача: подсчитать количество строк в массиве, где гласных больше чем согласных.

Companies where asked
Zuru Tech

Answer from AI

sobes.tech AI

Для решения задачи подсчёта количества строк, в которых гласных больше, чем согласных, можно пройти по массиву строк и для каждой строки подсчитать количество гласных и согласных.

Пример на Node.js:

function countStringsWithMoreVowels(arr) {
  const vowels = new Set(['а','е','ё','и','о','у','ы','э','ю','я',
                          'А','Е','Ё','И','О','У','Ы','Э','Ю','Я']);
  let count = 0;

  for (const str of arr) {
    let vowelsCount = 0;
    let consonantsCount = 0;

    for (const char of str) {
      if (/[а-яА-Я]/.test(char)) { // Проверяем, что символ - буква русского алфавита
        if (vowels.has(char)) {
          vowelsCount++;
        } else {
          consonantsCount++;
        }
      }
    }

    if (vowelsCount > consonantsCount) {
      count++;
    }
  }

  return count;
}

// Пример использования:
const arr = ["привет", "мир", "океан", "яблоко"];
console.log(countStringsWithMoreVowels(arr)); // Выведет количество строк с большим числом гласных

В этом коде:

  • Используется множество гласных для быстрого поиска.
  • Для каждой строки считаем гласные и согласные, учитывая только русские буквы.
  • Если гласных больше, увеличиваем счётчик.
  • Возвращаем итоговое количество таких строк.