
Вопрос задан 29.03.2021 в 14:23.
Предмет Информатика.
Спрашивает Brezhneva Kristina.
Даны две строки символов, состоящих из цифр, букв и пробелов. Группу символов, не содержащих
пробелов внутри себя, будем называть словами. Составить программу переформирования строк так, чтобы в первой строке располагались слова, начинающиеся с цифр, в порядке их возрастания, а во второй – слова, начинающиеся с букв, в алфавитном порядке.

Ответы на вопрос

Отвечает Шихалев Дима.
PascalABC.NET 3.4.0, сборка 1672 от 10.06.2018
Внимание! Если программа не работает, обновите версию!
begin
var s1:=ReadlnString('Строка 1:');
var s2:=ReadlnString('Строка 2:');
var s:=(s1+' '+s2).ToWords;
s1:=s.Where(t->t[1] in ['0'..'9']).OrderBy(t->t).JoinIntoString;
s1.Println;
s2:=s.Where(t->not(t[1] in ['0'..'9'])).OrderBy(t->t).JoinIntoString;
s2.Println
end.
Внимание! Если программа не работает, обновите версию!
begin
var s1:=ReadlnString('Строка 1:');
var s2:=ReadlnString('Строка 2:');
var s:=(s1+' '+s2).ToWords;
s1:=s.Where(t->t[1] in ['0'..'9']).OrderBy(t->t).JoinIntoString;
s1.Println;
s2:=s.Where(t->not(t[1] in ['0'..'9'])).OrderBy(t->t).JoinIntoString;
s2.Println
end.




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения данной задачи можно использовать следующий алгоритм:
- Разделить каждую из исходных строк на слова. Мы можем использовать пробел в качестве разделителя.
- Создать два пустых списка: один для слов, начинающихся с цифр, и другой для слов, начинающихся с букв.
- Проанализировать каждое слово и добавить его в соответствующий список в зависимости от первого символа.
- Отсортировать слова в списке, начинающемся с цифр, по возрастанию.
- Отсортировать слова в списке, начинающемся с букв, в алфавитном порядке.
- Объединить отсортированные списки слов обратно в строки.
Вот пример реализации данного алгоритма на языке Python:
pythondef reformat_strings(string1, string2):
words_with_digits = []
words_with_letters = []
# Разделение строк на слова
words1 = string1.split()
words2 = string2.split()
# Анализ и добавление слов в соответствующие списки
for word in words1:
if word[0].isdigit():
words_with_digits.append(word)
for word in words2:
if word[0].isalpha():
words_with_letters.append(word)
# Сортировка слов
words_with_digits.sort(key=lambda x: int(x[0]))
words_with_letters.sort()
# Объединение отсортированных списков слов в строки
sorted_string1 = ' '.join(words_with_digits)
sorted_string2 = ' '.join(words_with_letters)
return sorted_string1, sorted_string2
# Пример использования
string1 = "1abc 3xyz 2def 5ghi"
string2 = "apple dog banana cat"
result1, result2 = reformat_strings(string1, string2)
print(result1) # Вывод: 1abc 2def 3xyz 5ghi
print(result2) # Вывод: apple banana cat dog
В этом примере функция reformat_strings
принимает две строки string1
и string2
. Она возвращает две отформатированные строки, где слова с цифрами и буквами расположены в соответствии с требованиями задачи.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili