-
31 December 2020
Информатика
- Автор: wyq
НУЖНА ВАША ПОМОЩЬ!
Наше агентство осуществило перехват нескольких предположительно шпионских сообщений. Однако возникли проблемы при декодировании.
Нам удалось узнать, что:
- каждый символ изначального сообщения закодировали последовательностью из нулей и единиц;
длина каждой из этих последовательностей равна k ;
- каждому символу поставлена в соответствие ровно одна последовательность из k нулей и единиц;
каждой последовательности из k нулей и единиц поставлен в соответствие ровно один символ;
-экземпляры таблицы декодирования испорчены ине подлежат восстановлению.
Большего вам знать не нужно.
Для первичного отделения шпионских сообщений от сообщений, попавших в рассмотрение случайно, нам нужна программа, подсчитывающая количество различных символов, используемых в сообщении, представленном в виде строки.
Берётесь за эту работу?
Формат входных данных
В первой строке входных данных два целых числа:
1≤n≤10^5 - длина строки;
1≤k≤n - длина последовательностей, которыми были закодированы символы.
Во второй строке дано сообщение в виде строки s .
Гарантируется, что число n кратно k и закодированная строка s состоит из n символов, каждый из которых равен 0 или 1 .
Формат выходных данных
Выведите одно положительное число – количество различных символов в строке.
Пример -
Ввод:
9 3
001000100
Вывод:
3
Надеюсь на вас :) (любой язык программирования)-
-
-
31 December 2020
- Ответ оставил: MaxLevs
C#. Пример работы на изображении. (Входные данные отличаются)
using System;
using System.Collections.Generic;
using System.Linq;
namespace NSymbs
{
class Program
{
static void Main(string[] args)
{
string input;
input = Console.ReadLine();
int[] param = input.Split("\t ".ToCharArray()).Select(x => int.Parse(x)).ToArray();
input = Console.ReadLine();
int z = input.Length / param[1];
List<string> bufer = new List<string>();
for (int i = 0; i < z; ++i)
bufer.Add(input.Substring(i*param[1], param[1]));
Console.WriteLine(bufer.Distinct().Count());
}
}
}
-
-
- НЕ НАШЛИ ОТВЕТ?
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (06.09.2026) наш сайт содержит 109576 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос. -
Нажимая на кнопку "Ответить на вопрос", я даю согласие на обработку персональных данных
Ответить на вопрос
