Для двух строк str1 и str2 напишите функцию, которая печатает все чередования данных двух строк. Вы можете предположить, что все символы в обеих строках разные
Пример:
Input: str1 = "AB", str2 = "CD" Output: ABCD ACBD ACDB CABD CADB CDAB Input: str1 = "AB", str2 = "C" Output: ABC ACB CAB
Чередованная строка данных двух строк сохраняет порядок символов в отдельных строках. Например, во всех перемежениях первого примера «A» предшествует «B», а «C» предшествует «D».
Пусть длина str1 равна m, а длина str2 равна n. Предположим, что все символы в str1 и str2 различны. Пусть count (m, n) будет количеством всех чередующихся строк в таких строках. Значение count (m, n) можно записать следующим образом.
count(m, n) = count(m-1, n) + count(m, n-1) count(1, 0) = 1 and count(0, 1) = 1
Чтобы распечатать все чередования, мы можем сначала исправить первый символ str1 [0..m-1] в выходной строке и рекурсивно вызвать str1 [ 1 ..m-1] и str2 [0..n-1]. И тогда мы можем исправить первый символ str2 [0..n-1] и рекурсивно вызвать str1 [0..m-1] и str2 [ 1 ..n-1]. Спасибо akash01 за предоставление следующей реализации C.
|
С
|
питон
|
Выход:
ABCD ACBD ACDB CABD CADB CDAB
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Распечатать все дубликаты во входной строке
- Программа для проверки, являются ли строки вращением друг друга или нет
- Вывести обратную строку с помощью рекурсии
- Напишите программу для печати всех перестановок данной строки
- Распечатать список элементов, содержащих все символы данного слова
- Проверьте, являются ли две строки анаграммой друг друга
- Распечатать все перестановки с повторением символов
- Чередование двух заданных строк без общих символов
- Распечатать все перестановки в отсортированном (лексикографическом) порядке
- Учитывая последовательность слов, выведите все анаграммы вместе | Комплект 1
- Учитывая последовательность слов, выведите все анаграммы вместе | Набор 2
- Найти, если строка чередуется с двумя другими строками | DP-33
- Распечатать все способы разбить строку в скобках
- Распечатать все возможные слова из цифр телефона
- Найти, можно ли связать массив строк в круг | Комплект 1
0.00 (0%) 0 votes