Определить длину самого короткого слова в строке — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Определить длину самого короткого слова в строке

2022-10-29 26
Определить длину самого короткого слова в строке 0.00 из 5.00 0 оценок
Заказать работу

Создано

2014-02-03

Выбрать из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке.

Следует посимвольно перебирать строку. Если очередной символ цифра, то надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input()l = len(s)integ = []i = 0 while i < l: s_int = '' a = s[i] while '0' <= a <= '9':   s_int += a   i += 1   if i < l:       a = s[i]   else:       break i += 1 if s_int!= '':   integ.append(int(s_int)) print (integ)5 dkfj78df 9 8 dkfj8[5, 78, 9, 8, 8]

Найти слово по его номеру

В тексте найти слово под определенным номером (например, пятое слово по счету). Вывести на экран его первую букву.

В программе ниже переменная count используется, чтобы считать слова, а f - чтобы определять, находимся ли мы внутри очередного слова или началось новое слово.

Если началось новое слово, то счетчик слов увеличивается, и если счетчик равен искомому по номеру слову, то цикл завершается.

s = input()l = len(s)n = int(input("Номер слова: "))count = 0f = 0i = 0 while i < l:   if s[i]!= ' ' and f == 0:          count += 1          f = 1          if count == n:                   break    elif s[i] == ' ':           f = 0   i += 1 print (s[i])

Пример выполнения кода:

один два три четы пять шесть Номер слова: 4ч

Однако с помощью Python решение этой задачи может быть существенно короче:

s = input()l = len(s)n = int(input("Номер слова: "))s = s.split() print (s[n][0])

Метод split() без аргумента разбивает строку на слова по пробелу. Выражение s[n][0] извлекает из списка n-ый элемент, а затем берет из сроки первый символ.

Определить длину самого короткого слова в строке

В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.

Алгоритм решения задачи:

1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.

2. Длина самого короткого слова будет записана в переменной min_w. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min_w равна длине строки.

3. Перебираем строку посимвольно в цикле for.

4. Если очередной символ является буквой, то увеличиваем значение w.

5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min_w. Если это так, то меняем значение min_w на значение w.

6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.

s = input()

w = 0

min_w = len(s)

for i in s:

   if 'a'<=i<='z' or 'A'<=i<='Z' \

   or 'а'<=i<='я' or 'А'<=i<='Я':

          w += 1

   else:

          if w < min_w and w!= 0:

                  min_w = w

          w = 0

 

print (min_w)

Пример работы программы:

Кто сказал мяу?           

3

1 what

4

Отсортировать слова в строке по возрастанию их длины

Вводится строка, состоящая из слов, разделенных пробелами. Требуется отсортировать слова в строке так, чтобы наиболее короткие из них были вначале строки, а наиболее длинные в конце.

Алгоритм решения задачи:

1. Преобразуем строку в список слов. Для этого следует воспользоваться методом split().

2. Измерим длину получившегося списка. Это значение показывает количество элементов списка, т.е. количество слов.

3. Используя метод пузырька, отсортируем элементы списка по их длине. Во внутреннем цикле сортировки должны сравниваться не значения элементов, а их длина.

4. Создадим пустую строку. В цикле по элементам списка будем добавлять каждое слово в конец этой новой строки, а также добавлять пробел после каждого слова.

s = input()

l = s.split()

ln = len(l)

for i in range(ln-1):

for j in range(ln-1-i):

   if len(l[j]) > len(l[j+1]):

       l[j],l[j+1] = l[j+1],l[j]

 

s = ''

for i in range(ln):

s += l[i] + ' '

print (s)

Пример работы программы:

ab aaab ba baaaaa a aba

a ab ba aba aaab baaaaa

Функции

Наименьшее общее кратное

Найти наименьшее общее кратное (НОК) пар чисел по формуле НОК = ab / НОД(a,b), где a и b - это натуральные числа, НОД - наибольший общий делитель.

Из условия задачи ясно, чтобы найти НОК, надо сначала найти НОД. Последний можно вычислить, постепенно находя остаток от деления большего числа из пары на меньшее и присваивая остаток переменной, связанной с большим числом. В какой-то момент значение одной из переменных станет равным 0. Когда это произойдет, другая будет содержать НОД. Если неизвестно, какая именно переменная содержит НОД, то можно просто сложить значения обоих переменных.

В коде ниже используется функция для нахождения НОК, которая принимает два числа и возвращает найденное наименьшее общее кратное.

В основной ветке программы функция вызывается в цикле, который завершается, если то, что было введено, нельзя преобразовать к целому. В этом случае генерируется исключение (ошибка) и поток выполнения переходит к ветке except.

def lcm(a,b): m = a*b while a!= 0 and b!= 0:   if a > b:       a %= b   else:       b %= a return m // (a+b) while 1: try:   x = int(input('a='))   y = int(input('b='))   print ('НОК:',lcm(x,y)) except:   break

Пример выполнения:

a=67b=54НОК: 3618a=78b=87НОК: 2262a=28b=33НОК: 924a=13b=14НОК: 182a=85b=45НОК: 765a=50b=120НОК: 600a=t

Файлы

Создано

2014-02-03

Выбрать из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке.

Следует посимвольно перебирать строку. Если очередной символ цифра, то надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input()l = len(s)integ = []i = 0 while i < l: s_int = '' a = s[i] while '0' <= a <= '9':   s_int += a   i += 1   if i < l:       a = s[i]   else:       break i += 1 if s_int!= '':   integ.append(int(s_int)) print (integ)5 dkfj78df 9 8 dkfj8[5, 78, 9, 8, 8]

Найти слово по его номеру

В тексте найти слово под определенным номером (например, пятое слово по счету). Вывести на экран его первую букву.

В программе ниже переменная count используется, чтобы считать слова, а f - чтобы определять, находимся ли мы внутри очередного слова или началось новое слово.

Если началось новое слово, то счетчик слов увеличивается, и если счетчик равен искомому по номеру слову, то цикл завершается.

s = input()l = len(s)n = int(input("Номер слова: "))count = 0f = 0i = 0 while i < l:   if s[i]!= ' ' and f == 0:          count += 1          f = 1          if count == n:                   break    elif s[i] == ' ':           f = 0   i += 1 print (s[i])

Пример выполнения кода:

один два три четы пять шесть Номер слова: 4ч

Однако с помощью Python решение этой задачи может быть существенно короче:

s = input()l = len(s)n = int(input("Номер слова: "))s = s.split() print (s[n][0])

Метод split() без аргумента разбивает строку на слова по пробелу. Выражение s[n][0] извлекает из списка n-ый элемент, а затем берет из сроки первый символ.

Определить длину самого короткого слова в строке

В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.

Алгоритм решения задачи:

1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.

2. Длина самого короткого слова будет записана в переменной min_w. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min_w равна длине строки.

3. Перебираем строку посимвольно в цикле for.

4. Если очередной символ является буквой, то увеличиваем значение w.

5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min_w. Если это так, то меняем значение min_w на значение w.

6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.

s = input()

w = 0

min_w = len(s)

for i in s:

   if 'a'<=i<='z' or 'A'<=i<='Z' \

   or 'а'<=i<='я' or 'А'<=i<='Я':

          w += 1

   else:

          if w < min_w and w!= 0:

                  min_w = w

          w = 0

 

print (min_w)

Пример работы программы:

Кто сказал мяу?           

3

1 what

4


Поделиться с друзьями:

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

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

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

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.029 с.