Как вычислить общее количество строк и определить максимальное число повторяющихся строк?

Как правильно реализовать программу, которая принимает несколько предложений, разделяемых символом табуляции ('\t'), использует метод strip() для удаления пробельных символов в начале и в конце каждого предложения, подсчитывает количество повторений каждого предложения и выводит на экран число наибольшего количества повторений? Например, для входных данных "Interpreter is a computer program that performs instructions without previously compiling them into a machine language program\tlinker is a program that takes one or more object files generated by a compiler and combines them into a single executable file library file or another object file\tthe linker also takes care of arranging the objects in a program's address space\tthe linker also takes care of arranging the objects in a program's address space", корректный ответ должен быть 2, но в моей текущей реализации выводится 7. 

Примечание: В моей попытке я использовала следующий код:
```python
a = (input('Введите данные: ').strip()).split()
res = {}
for i in a:
    res[i] = res.get(i, 0) + 1
print(max(res.values()))
```
  • 30 ноября 2023 г. 18:49
Ответы на вопрос 4
Для вычисления общего количества строк и определения максимального числа повторяющихся строк, а также для реализации программы по заданию, можно использовать следующий подход:

Используйте метод `split('\t')` для разделения предложений, а не `split()`. Метод `split()` разделяет строку на подстроки с использованием пробела в качестве разделителя по умолчанию, что приводит к неправильному подсчёту предложений, так как слова внутри предложения тоже считаются отдельными подстроками. 

Код может выглядеть следующим образом:

```python
# Ввод данных с разделением по символу табуляции
a = input('Введите данные: ').split('\t')

# Словарь для подсчёта количества повторений предложений
res = {}

# Проход по каждому предложению с использованием strip()
for i in a:
    i = i.strip()  # Удаление пробельных символов в начале и конце предложения
    res[i] = res.get(i, 0) + 1  # Обновление словаря с подсчётом количества повторений предложения

# Вывод максимального числа повторений
print(max(res.values()))

# Если нужно вывести также общее количество строк (предложений)
print('Общее количество строк:', len(a))
```

Теперь данный код должен правильно вывести количество повторений для предложений, разделённых символом табуляции, и общее количество предложений.
Если упорства не хватает — не сдавайтесь, упорствуйте ещё больше!  
Используйте метод split('\t') для разбивки по предложениям, а не по словам. Функцию strip() применяйте к каждому предложению по отдельности, а не ко всей строке. Итоговый подсчёт производите для уже разбитых предложений. 
Пример кода: 

a = "Interpreter is a computer program that performs instructions without previously compiling them into a machine language program\tlinker is a program that takes one or more object files generated by a compiler and combines them into a single executable file library file or another object file\tthe linker also takes care of arranging the objects in a program's address space\tthe linker also takes care of arranging the objects in a program's address space".split('\t')

res = {}

for i in a:
    sentence = i.strip()
    res[sentence] = res.get(sentence, 0) + 1
print(max(res.values()))  # 2
Похожие вопросы