profile
Размещено 5 лет назад по предмету Информатика от wyq

НУЖНА ВАША ПОМОЩЬ!
Наше агентство осуществило перехват нескольких предположительно шпионских сообщений. Однако возникли проблемы при декодировании.

Нам удалось узнать, что:

- каждый символ изначального сообщения закодировали последовательностью из нулей и единиц;
длина каждой из этих последовательностей равна k ;

- каждому символу поставлена в соответствие ровно одна последовательность из k нулей и единиц;
каждой последовательности из k нулей и единиц поставлен в соответствие ровно один символ;

-экземпляры таблицы декодирования испорчены ине подлежат восстановлению.

Большего вам знать не нужно.

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

Берётесь за эту работу?

Формат входных данных

В первой строке входных данных два целых числа:

1≤n≤10^5 - длина строки;

1≤k≤n - длина последовательностей, которыми были закодированы символы.

Во второй строке дано сообщение в виде строки s .

Гарантируется, что число n кратно k и закодированная строка s состоит из n символов, каждый из которых равен 0 или 1 .

Формат выходных данных

Выведите одно положительное число – количество различных символов в строке.

Пример -

Ввод:
9 3
001000100
Вывод:
3

Надеюсь на вас :) (любой язык программирования)

  1. Ответ на вопрос
    Ответ на вопрос дан 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());

           }

       }

    }


    1. Ответ на вопрос
      Ответ на вопрос дан wyq
      А как выбрать твой ответ лучшим? Я просто тут впервые.
    2. Ответ на вопрос
      Ответ на вопрос дан wyq
      И да, ты же хорошо знаешь C#. У меня еще есть пара интересных задач. Поможешь решить?)
    3. Ответ на вопрос
      Ответ на вопрос дан wyq
      Я оценку в 5 звезд поставил
    4. Ответ на вопрос
      Ответ на вопрос дан wyq
      Неееет, не умирай
    5. Ответ на вопрос
      Ответ на вопрос дан MaxLevs
      Взаимно :D
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.