0 / 0 / 0
Регистрация: 22.03.2020
Сообщений: 9

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

13.11.2020, 09:58. Показов 1324. Ответов 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,695
Записей в блоге: 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,695
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru