ВУЗ:
Составители:
Рубрика:
{
// подсчет лишних пробелов
while (i < n && s[i] == ' ')
{
k++; i++;
}
// сдвиг слова
while ( i < n && s[i] != ' ')
{
s1[i - k] = s1[i];
i++;
}
// если слово не последнее, сдвиг следующего за ним пробела
if (i < n)
{
s1[i - k] = s1[i];
i++;
}
}
// получение строки из массива символов, начиная с 0-ого символа
// в количестве длина исходной строки - число удаленных символов
s = new string(s1,0, n-k);
Console.WriteLine("Полученная строка:");
Console.WriteLine(s);
}
}
}
Задача 6. В заданной символьной строке поменять местами слова
минимальной и максимальной длины.
Задача разбивается на две части. Первая часть заключается в поиске слов
максимальной и минимальной длины (алгоритм рассматривался при решении
задачи 3).
Вторая часть заключается собственно в перестановке найденных слов.
Эту подзадачу также условно можно разделить на два этапа. Пусть длина
минимального слова хранится в переменной min, а максимального – в
переменной max. Сначала меняем местами первые буквы слов в количестве
min штук. Затем нужно вставить на требуемое место "хвостик" от самого
длинного слова. Эту вставку осуществляем по одному символу, смещая ту
часть строки, которая находится между словами, на один символ вправо или
влево соответственно в зависимости от того, какое из слов – минимальное
или максимальное, – встретилось раньше. На освободившееся место
устанавливаем очередной символ из “хвостика”. Повторяем такую
последовательность действий столько раз, какова разница между длинами
слов.
Блок-схема решения этой задачи представлена на Рис.5.6 и 5.7.
{
// подсчет лишних пробелов
while (i < n && s[i] == ' ')
{
k++; i++;
}
// сдвиг слова
while ( i < n && s[i] != ' ')
{
s1[i - k] = s1[i];
i++;
}
// если слово не последнее, сдвиг следующего за ним пробела
if (i < n)
{
s1[i - k] = s1[i];
i++;
}
}
// получение строки из массива символов, начиная с 0-ого символа
// в количестве длина исходной строки - число удаленных символов
s = new string(s1,0, n-k);
Console.WriteLine("Полученная строка:");
Console.WriteLine(s);
}
}
}
Задача 6. В заданной символьной строке поменять местами слова
минимальной и максимальной длины.
Задача разбивается на две части. Первая часть заключается в поиске слов
максимальной и минимальной длины (алгоритм рассматривался при решении
задачи 3).
Вторая часть заключается собственно в перестановке найденных слов.
Эту подзадачу также условно можно разделить на два этапа. Пусть длина
минимального слова хранится в переменной min, а максимального – в
переменной max. Сначала меняем местами первые буквы слов в количестве
min штук. Затем нужно вставить на требуемое место "хвостик" от самого
длинного слова. Эту вставку осуществляем по одному символу, смещая ту
часть строки, которая находится между словами, на один символ вправо или
влево соответственно в зависимости от того, какое из слов – минимальное
или максимальное, – встретилось раньше. На освободившееся место
устанавливаем очередной символ из “хвостика”. Повторяем такую
последовательность действий столько раз, какова разница между длинами
слов.
Блок-схема решения этой задачи представлена на Рис.5.6 и 5.7.
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »
