Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 14.09.2020
Сообщений: 8

Бинарные строки

14.09.2020, 21:58. Показов 7233. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Строка называется бинарной, если она состоит только из символов 0 и 1.

Строка v называется подстрокой строки w, если она имеет ненулевую длину, и её можно прочитать, начиная с некоторой позиции в строке w. Например, у строки «010» существует шесть подстрок: «0», «1», «0», «01», «10», «010». Две строки считаются различными, если они начинаются в разных позициях, либо имеют разную длину. Другими словами: каждая подстрока учитывается столько раз, сколько она встречается в исходной строке.

Дана бинарная строка s. Ваша задача — найти количество её подстрок, в которых ровно k единиц.

Входные данные
Первая строка содержит число k (0 ≤ k ≤ 106) — необходимое количество единиц в подстроках. Вторая строка содержит непустую бинарная строку s. Длина строка s не превосходит 106.

Выходные данные
Выведите количество подстрок, содержащих ровно k единиц.

Пример
входные данные
1
1010
выходные данные
6
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2020, 21:58
Ответы с готовыми решениями:

Бинарные файлы
Здравствуйте, подскажите как работать с бинарными файлами Допустим у меня есть файл "input.txt" c некоторым текстом внутри. ...

Бинарные файлы
Помогите решить задачку: P.S. Главный акцент именно на бинарные файлы, саму задачу решить не сложно, а вот как реализовать бинарные...

Бинарные отношения
Задание 1: Отношение R≤ A × B где A = {...}; B = {...}; Задать R перечислением элементов; Матрицей элементов W (R) Графами G (R)....

7
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
15.09.2020, 07:18
FROZZY07, решил. дальше что делать? где приз за олимпиаду забирать?
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
15.09.2020, 08:37
eaa, Через произведение разностей индексов "единичек"?
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
15.09.2020, 09:14
Gdez, на codeforces есть эта задача. можете порешать.

FROZZY07,
Python
1
2
3
4
5
6
7
8
9
10
k = int(input())
d = {0: 1}
s = 0
for c in input():
    s += int(c)
    d[s] = d.get(s, 0) + 1
res = 0
for i in range(k, s+1):
    res += d[i]*d[i-k]
print(res)
не пройдет по времени из-за dict.
и неправильный ответ при k=0
дальше самостоятельно

у меня до 1,5 сек получилось сделать:
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
15.09.2020, 11:06
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
k = 1
s = '1010'
 
def make_magic(k):
    result = []
    for i in range(2 ** k):
        ss = '{:0{width}b}'.format(i, width=k)
        if ss.count('1') == k:
            result.append(ss)
    return result
 
lst = make_magic(k)
print(lst)
r = 0
for i in lst:
    if i in s:
        r += 1
print(r)
Добавлено через 1 минуту
Для k = 1000000 на работает
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
15.09.2020, 11:54
2^k - это сильно ))
1
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
15.09.2020, 11:58
52-й тест 2 сек - превышение времени (((
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
15.09.2020, 12:01
Можно схитрить и написать так
Python
1
lst = make_magic(min(k, len(s))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.09.2020, 12:01
Помогаю со студенческими работами здесь

Бинарные деревья
class Tree: def __init__(self, cargo, left= None, right = None): self.cargo = cargo self.left = left ...

Бинарные деревья
Записи вершин дерева - вещественные числа. Описать процедуру, которая выбирает все вершины с отрицательными записями и строит из них новое...

Бинарные файлы
Нужна помощь! :hysteric: На форуме ничего похожего не нашлось... Дан бинарный файл, содержащий целые числа. Юзер задает некоторое число,...

Бинарные и текстовые файлы
Перезапишите файл Seven.txt в бинарном режиме Seven.bin и считайте его снова в массив. Обратите внимание на размер этих двух файлов.

Бинарные и текстовые файлы
1.Компонентами бинарного файла F1 есть целые числа (положительные и отрицательные). Записать в новый бинарний файл F2 все числа файла F1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru