М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Божа
Божа
30.01.2023 23:38 •  Информатика

Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. если количество букв в цепочке символов чётно, то из цепочки удаляется первая буква. в противном случае в конец цепочки добавляется символ а. затем в полученной цепочке символы попарно меняются местами (первый — со вторым, третий — с четвёртым, и т. если в цепочке нечётное количество символов, последний символ остается на своём месте. получившаяся таким образом цепочка является результатом работы алгоритма. например, если исходной цепочкой была цепочка 2мд, то результатом работы алгоритма будет цепочка д2, а если исходной цепочкой была 5ф, то результатом работы алгоритма будет цепочка ф5а. дана цепочка символов б7в92р. какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (то есть применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?

👇
Ответ:
оля1441
оля1441
30.01.2023

ответ:Исходная цепочка: И1Э73Р

1. 1Э73Р

   Э137Р

2. Э137РА

   1Э73АР

ответ:1Э73АР

4,4(51 оценок)
Открыть все ответы
Ответ:
Kikiro
Kikiro
30.01.2023

ответ:Для начала в onCreate() уберите эту строку:

chatContainer.clear()

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

lateinit var adapter: RecyclerChatAdapter

Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:

when {

   documentSnapshot != null -> {

       for (dc in documentSnapshot.documentChanges) {

           when (dc.type) {

               DocumentChange.Type.ADDED -> {

                   val chat = dc.document.toObject(Chat::class.java)

                   chatContainer.add(chat) // Добавление данных в Recycler

                   if(chatContainer.size == documentSnapshot.documentChanges)

                   {

                       adapter = RecyclerChatAdapter(chatContainer)

                   }

               }

           }

       }

   }

}

и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:

for (i in chatContainer) {

   adapter.notifyDataSetChanged()

}

4,6(31 оценок)
Ответ:

Если создать шаблон строки с автозаполнением, то можно немного у код:

import sys

num_steps = int(sys.argv[1])

fmt_template = '{}.{:>%d}' % num_steps

for x in range(1, num_steps + 1):

   print(fmt_template.format(x, '#' * x))

При num_steps = 4:

1.   #

2.  ##

3. ###

4.

Объяснение:

Все аргументы функции print, указанные через запятую, выводятся разделенные пробелом, отсюда и нестыковка.

Можно так попробовать:

for x in range(1, c+1):

   print('{0}{1}{2}'.format(x, " " * (c - x), '#' * x))

Для c = 3:

1  #

2 ##

3###

Либо заменить запятую конкатенацией (знак +):

print(str(x) + " " * (c - x) + '#' * x)

4,8(31 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ