Главная
>>
Каталог задач
>>
Строки
>>
Переворот символов строки (или элементов одномерного массива)
Переворот символов строки (или элементов одномерного массива)
реализации: C#, количество: 3
Aвтор: this
Дата: 24.12.2003
Просмотров: 81101
Рейтинг:
3/7,4.84(3648)
+
реализации(исходники)
+добавить
Эта простенькая задача возникает иногда в более сложных алгоритмах.
Имеется, например, строка "qwerty". Нужно получить симметричное(зеркальное) отображение: "ytrewq"
Берем 2 индекса: начало и конец строки(одномерного массива). В цикле последовательно двигаем их друг к другу, меняя соответствующие элементы:
for i = 0 to n - 1 && j = n-1 downto 0
if i >= j
return
tmp = str[i]
str[i] = str[j]
str[j] = tmp
Реализации:
C#(3),
C++(1)
+добавить реализацию
1)
Симметричное (зеркальное) отображение фрагмента строки, code #72[автор:this]
private void StrReverse(ref String str, int left, int right)
{
if (left >= right || right >= str.Length) return;
for (int i = left, j = right; i < j; i++, j--)
{
Char tmp = str[i];
this.ReplaceCharInString(ref str, i, str[j]);
this.ReplaceCharInString(ref str, j, tmp);
}
}
2)
Симметричное (зеркальное) отображение массива символов, code #198[автор:-]
static void Reverse(ref char[] array)
{
char t;
for (int i = 0; i <= Math.Floor((double)((array.Length - 1) / 2)); i++)
{
t = array[i];
array[i] = array[array.Length - (1 + i)];
array[array.Length - (1 + i)] = t;
}
}
3)
massive, code #598[аноним:safarali]
Напишите приложение, которое по введеному английскому предложению
печатает количество различных букв в этом предложении, а затем и
сами эти буквы в алфавитном порядке.