Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3772392
А
Аноним
2 дня назад · публичный вопрос
А
Аноним

сделай такую же схему только доя 25 варианта:Вывести слова, встречающиеся в строке ровно один раз.

Ответ нейросети
2 дня назад

Краткий ответ: нужно разбить строку на слова, для каждого слова посчитать, сколько раз оно встречается, и вывести те слова, у которых счётчик равен 1.

Схема для варианта 25

flowchart TD
    A([Начало]) --> B[/Ввод строки s/]
    B --> C["words = s.split()"]
    C --> D["n = len(words)"]
    D --> E["i = 0"]
    E --> F{"i < n?"}
    F -- "нет" --> Z([Конец])
    F -- "да" --> G["count = 0<br/>j = 0"]
    G --> H{"j < n?"}
    H -- "да" --> I{"words[i] == words[j]?"}
    I -- "да" --> J["count = count + 1"]
    I -- "нет" --> K["j = j + 1"]
    J --> K
    K --> H
    H -- "нет" --> L{"count == 1?"}
    L -- "да" --> M[/"Вывод words[i]"/]
    L -- "нет" --> N["i = i + 1"]
    M --> N
    N --> F

Та же схема словами

  1. Начало.
  2. Ввод строки s.
  3. words = s.split(), n = len(words), i = 0.
  4. Если i = n — конец.
  5. count = 0, j = 0.
  6. Если j = n — перейти к пункту 9.
  7. Если words[i] == words[j], то count = count + 1.
  8. j = j + 1; вернуться к пункту 6.
  9. Если count == 1, вывести words[i].
  10. i = i + 1; вернуться к пункту 4.

Псевдокод

words = s.split()

for i in range(len(words)):
    count = 0
    for j in range(len(words)):
        if words[i] == words[j]:
            count += 1

    if count == 1:
        print(words[i])

Почему это работает: для очередного слова внутренний цикл считает все его вхождения. Если слово встречается ровно один раз, оно совпадёт только само с собой, и count будет равен 1. Если есть ещё такое же слово, count станет больше 1, и слово не выведется.

Пример:
кот пёс кот лиса пёс сова
счётчики: кот — 2, пёс — 2, лиса — 1, сова — 1.
Результат: лиса, сова.

Считаем, что слова разделены пробельными символами; split() без аргумента убирает лишние пробелы. Если нужен учёт знаков препинания или регистра, это надо обработать отдельно.

Обсуждение

2 сообщения
А
Аноним

фото

Нейросеть2 дня назад

Картинку я отправить не могу — отвечаю только текстом. Но вот та же схема в виде блоков, её легко перерисовать от руки:

 ┌──────────┐
 │  Начало  │
 └────┬─────┘
      ▼
 ┌───────────────────┐
 │ Ввод строки s     │
 └────┬──────────────┘
      ▼
 ┌───────────────────┐
 │ words = s.split() │
 │ n = len(words)    │
 │ i = 0             │
 └────┬──────────────┘
      ▼
  < i < n ? > ──── нет ────► [ Конец ]
      │ да
      ▼
 ┌───────────────────┐
 │ count = 0         │
 │ j = 0             │
 └────┬──────────────┘
      ▼
  < j < n ? > ──── нет ────► (A)
      │ да
      ▼
  < words[i] == words[j] ? >
      │ да              │ нет
      ▼                 │
 ┌──────────────┐       │
 │ count =      │       │
 │ count + 1    │       │
 └──────┬───────┘       │
        └───────┬───────┘
                ▼
        ┌───────────────┐
        │  j = j + 1    │
        └───────┬───────┘
                └──► назад к «j < n ?»

 (A)  < count == 1 ? > ──── нет ────┐
             │ да                  │
             ▼                      │
    [ Вывод words[i] ]              │
             ▼                      │
 (B)  ┌───────────────┐             │
      │  i = i + 1    │◄────────────┘
      └───────┬───────┘
              └──► назад к «i < n ?»

Если ты имел в виду, что хочешь прислать фото задания, — прикрепи его, и я сверю схему с условием.