Главная
>>
Каталог задач
>>
Строки
>>
Перестановка фрагментов строки(или одномерного массива)
Aвтор:
this
Дата:
15.10.2003
Просмотров: 62090
реализации(C#: 1шт...)
+добавить
Данная простенькая задача возникает иногда в более сложных алгоритмах.
Имеется произвольная строка символов(либо одномерный массив). В ней выделяются 2 фрагмента одинаковой длины, непересекающиеся друг с другом. Нужно поменять их местами.
Например: Есть "qwertyuiopasdf", нужно получить "iopasyuqwertdf".
Простой цикл, в котором поочередно меняются соответствующие символы обеих фрагментов:
/* a - индекс начала первого фрагмента
b - индекс начала второго фрагмента
m - длинна обеих фрагментов
n - общее количество элементов
*/
for i = 0 to m-1
if b+i >= n
return
tmp = str[a+i]
str[a+i] = str[b+i]
str[b+i] = tmp
Реализации:
C#(1)
+добавить
1)
Перестановка фрагментов строки на C#, code #70[автор:this]
public void StrSwap(ref String str, int a, int b, int m) {
for (int i = 0; i < m; i++)
{
if (b + i >= str.Length) break;
Char tmp = str[a + i];
this.ReplaceCharInString(ref str, a + i, str[b + i]);
this.ReplaceCharInString(ref str, b + i, tmp);
}
}