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

Как вычислить в вложенном массиве нужное нам

13.11.2020, 09:58. Показов 1308. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нам выдается вложенный список размера AxB, в котором условно есть квадратные/прямоугольные части, где O - пустота, а X - часть поля. При этом этих полей может несколько и вообще не может быть. Как вычислить площадь каждой части?

Условности:
0 < A, B <= 100

Примеры (знак "_" используется чтобы выглядело ровнее, в задаче он не существует):
[[OOXO],
_[OOXO],
_[OOXO],
_[OOOO]] Вывод: [3]

[[OXXO],
_[OXXO],
_[OOOO],
_[OOOO]] Вывод: [4]

[[OXXO],
_[OXXO],
_[OOOO],
_[XOOO]] Вывод: [4, 1]

[[OXOO],
_[OXOO],
_[OOOO],
_[XOOX]] Вывод: [2, 1, 1]

Заранее спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2020, 09:58
Ответы с готовыми решениями:

Как вытащить нужное нам значение?
Всем привет! Помогити пожалуйста вытащить нужное значение. Делаею запрос к апи и получаю ответ. Как мне кажется это json. Тут собраны...

Вычислить выражение во вложенном цикле, как нахождение произведения
Помогите переделать программу. Вычислить сумму и число отрицательных элементов матрицы А, находящихся над главной диагональю. Элементы...

Поиск во вложенном массиве JSON
Есть json { &quot;Autorization&quot;: , &quot;Pages&quot;: } public class Autorization { public string Name { get; set; } ...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.11.2020, 10:13
yNui17831, зря добавил _, внутри списка дежит 'OXXO' или 'O', 'X','X','O' ?
0
0 / 0 / 0
Регистрация: 22.03.2020
Сообщений: 9
13.11.2020, 10:15  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
yNui17831, зря добавил _, внутри списка дежит 'OXXO' или 'O', 'X','X','O' ?
Внутри списка лежит ["O", "X", "X, "O"], извиняюсь
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.11.2020, 11:09
Лучший ответ Сообщение было отмечено yNui17831 как решение

Решение

yNui17831, тогда вот все эти списки выложи в нормальном виде, чтобы их просто скопировать, а не руками набирать

Добавлено через 39 минут
yNui17831, писал на обеде, мог чего то упустить и не заморачивался с оптимизациями, работать будет только для прямоуголных областей, ассерты просто для проверок что работает, можно убрать
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def calculate(a_list: list) -> list:
    x, y = 0, 0
    char = 'X'
    sets = []  # наборы координат, чтобы не повторяться
    while True:
        element = a_list[x][y]
        if element == char and all((x, y) not in p for p in sets):
            points = []
            width, height = 1, 1
            for i in range(y + 1, len(a_list[x])):
                if a_list[x][i] != char:
                    break
                else:
                    width += 1
            for i in range(x + 1, len(a_list)):
                if a_list[i][y] != char:
                    break
                else:
                    height += 1
            for x1 in range(x, x + height):
                for y1 in range(y, y + width):
                    points.append((x1, y1))
            sets.append(points)
        y = y + 1
        if y >= len(a_list[x]):
            x = x + 1
            y = 0
        if x >= len(a_list):
            break
    return [len(p) for p in sets]
 
 
if __name__ == '__main__':
    example1 = [['O', 'O', 'X', 'O'], ['O', 'O', 'X', 'O'], ['O', 'O', 'X', 'O'], ['O', 'O', 'O', 'O']]
    example2 = [['O', 'X', 'X', 'O'], ['O', 'X', 'X', 'O'], ['O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O']]
    example3 = [['O', 'X', 'X', 'O'], ['O', 'X', 'X', 'O'], ['O', 'O', 'O', 'O'], ['X', 'O', 'O', 'O']]
    example4 = [['O', 'X', 'O', 'O'], ['O', 'X', 'O', 'O'], ['O', 'O', 'O', 'O'], ['X', 'O', 'O', 'X']]
    example5 = [['O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O']]
    assert calculate(example1) == [3]
    assert calculate(example2) == [4]
    assert calculate(example3) == [4, 1]
    assert calculate(example4) == [2, 1, 1]
    assert calculate(example5) == []
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2020, 11:09
Помогаю со студенческими работами здесь

Максимальная сумма чисел во вложенном массиве
const sums = , , , ]

Как суммировать значение во вложенном запросе?
Два дня сидел писал этот запрос! По запросу получаю оценки студентов за текущий контроль (тк1 и тк2) и рубежный контроль (рк1 и рк2),...

Как найти ключ во вложенном словаре?(питон)
list1 = {{'1': {'DEBUG': 'Tracemod'}, '2': {'ERROR': 'Null pointer exception'}, '3': {'INFO': 'startGameAllert'}, '4': {'DEBUG':...

Как удалить значение из словаря во вложенном выражении?
Народ, всем доброго времени суток. Возникла проблема. Вообщем вот код: map(lambda i : del nodes_to_copy,filter(lambda i : str(i.pk) in...

Как сделать алгоритм поиска в вложенном классе?
Помогите сделать метод поиска квартир в вложенном классе по полю vulica: #include &lt;cstdlib&gt; #include &lt;iostream&gt; class...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru