0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 27

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

14.12.2015, 21:57. Показов 4369. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru