Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 27

Строка: удалить из каждого слова все последущие вхождения первой буквы последовательности

14.12.2015, 21:57. Показов 4363. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно решить задачу без срезов. Очень нужно. Буду благодарен всем кто сможет помочь.

Дана последовательность, содержащая от 2 до 15 слов, в кажом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела, за последим словом - точка. Вывести на экран все слова, отличные от последнего слова, удалив из каждого слова все последущие вхождения первой буквы последовательности
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2015, 21:57
Ответы с готовыми решениями:

Удалить из каждого слова все последующие вхождения первой буквы слова
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 5 латинских букв, между соседними словами-запятая, за...

Удалить из каждого слова все последующие вхождения первой буквы этого слова
а) написать программу ввода текста с клавиатуры; б) напечатать все слова, отличающиеся от последнего слова, перед печатью удалив из...

Удалить из каждого слова все последующие вхождения первой буквы слова
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 5 латинских букв, между соседними словами-запятая, за...

8
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
14.12.2015, 23:35
Дана последовательность от 2 до 20 слов, которые состоят из 1-8 букв, между словами пробел, в конце последовательности точка. Нужно вывести слова последовательности, которые отличны от последнего слова(за которым точка) и первая буква слова входит в него еще раз.
Вот, что получилось:
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
def func():
    while 1:
        s = input('Напишите предложение от 2 до 20 слов: ')
        words = s.split(' ')
        if s.find('.') != -1:
            break
        else:
            print('Ой, забыл один нюанс! Свое предложение завершите точкой.')
    while 1:
            if len(words) > 20 or len(words) < 2:
                print('Уточню, предложение должно состоять из слов в количестве от ДВУХ до ДВАДЦАТИ!')
                continue
            else:
                while 1:
                    if all(len(wordi) <9 for wordi in s.split()):
                        break
                    else:
                        print('Слишком большое слово. Допустимое слово в пределах 8 букв.')
                        func()
            break
    last_word = words[len(words)-1]
    last_word = last_word[:len(last_word)-1]
    for word in words[:len(words)-1]:
        if word != last_word and word.find(word[0],2) != -1:
            print (word)
 
    print('Начать заново?')
    y='Да'
    n='Нет'
 
    while 1:
        print('Да/Нет')
        q=str(input(''))   
        if q==y:
            func()
        elif q==n:
            None
        else:
            continue
        break
func()
... но нужно написать код без использования индексов и срезов(то есть вообще квадратные скобки должны отсутствовать), а альтернативных вариантов решения этой задачи не могу найти. Поможете?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.12.2015, 01:11
Цитата Сообщение от RaHoWa Посмотреть сообщение
квадратные скобки должны отсутствовать
Python
1
last_word = words.__getitem__(-1)
— без квадратных скобок.
Ну или через регулярные выражения.
1
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.12.2015, 01:43
Python
1
2
3
4
5
6
7
for f_letter in mystring::
    break
words = mystring.split():
last_w = words.pop().replace('.', '')
for word in words:
    if word != last_w:
        print(word.replace(f_letter, ''))
1
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
15.12.2015, 03:24
Добавлено через 1 час 15 минут
Хорошо, с этим разобрался. Но как представить этот код?
Python
1
2
if word != last_word and word.find(word[0],2) != -1:
            print (word)
В принципе, что то придумал, но ничего не идет в голову по поводу того, как выразить "первая буква слова входит в него еще один раз"
Python
1
2
3
4
for word in words:
    if word != last_w:
        if '{0}'.format(*word)== "???": #'{0}'.format(*word) - первая буква слова, "???" - не_первая_буква слова(которая равна первой_букве)
            print (word)
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.12.2015, 15:26
RaHoWa, 1-ю букву слова надо удалять или последовательности?
0
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
15.12.2015, 17:46
Marinero, Ничего не надо удалять. Нужно выводить только те слова последовательности, в которых первая буква этого слова встречается в нем еще раз. Например: "Мама улыбнулась мне в ответ.". Должно вывести: Мама улыбнулась.
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.12.2015, 19:14
Python
1
2
3
4
5
>>> a = 'some one text'
>>> b = a.split()
>>> ' '.join(map(lambda s: s.__getitem__(0) + s.replace(s.__getitem__(0), ''), b))
'some one tex'
>>>
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.12.2015, 20:57
Python
1
2
3
4
5
for word in words:
    for letter1 in word.lower():
        break
    if word.lower().count(letter1) > 1 and word != last_w:
        print (word)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2015, 20:57
Помогаю со студенческими работами здесь

Удалить из слов текста все последующие вхождения первой буквы каждого слова
Помогите пожалуйста Дана последовательность символов. Преобразовать ее следующим образом: удалить из слов этого текста все последующие...

Удалить из слова все последующие вхождения первой буквы
Уважаемые форумчане, помогите закончить лабу. Массив есть, а вот с удаление букв проблема. -удалить из слова все последующие вхождения...

Удалить из слова все последующие вхождения первой буквы
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных латинских букв; между соседними словами -...

Удалить из слова все последующие вхождения первой буквы
Дана последовательность, содержащая от 2 до 10 слов, в каждом из которых от 2 до 10 латинских букв, между словами -не менее одного...

Удалить из слова все последующие вхождения первой буквы
Помогите нужен метод, дана строка надо удалить все последующие вхождения первой буквы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru