Дан список в файле, состоящий из одной строки, без знака переноса строки (\n): ‘one two one tho three’
Необходимо вывести число предыдущих (предшествующих i-му местоположению каждого слова в строке) повторений для каждого слова. Ответ должен получиться такой: 0 0 1 0 0. Сразу скажу, что при проверке на сервере тесты вводят и по 10, и по 20 строк со словами. Это единичный пример.
Так вот, такой ответ получается, но только в том случае, если в вводном файле добавить пустую строку и соответственно знак ее переноса после строки с вводными словами. Я добавил множество ‘cl’ с перечнем знаков-разделителей слов (в задаче таковыми считаются пробелы, двойные пробелы и знаки переноса строки). Но я не нашел в и-нете, как обозначается конец строки, чтобы дать команду программе, при ее обнаружении, перейти к следующему этапу выполнения. Dubugger показывает, что программа выполняется до последнего символа в строке и тупо прерывается. Может, есть вообще альтернативные способы?
fInp = open('input.txt', 'r', encoding='utf8') word = [] tc = 0 lWords = [] cl = {'\n', ' ', ' '} for line in fInp: for char in line: if char not in cl: word.append(char) else: t = ''.join(word) c = 0 for i in range(tc): if t == lWords[i]: c += 1 print(c, end=' ') lWords.append(t) tc += 1 word = []