Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Неадекват
1443 / 1193 / 233
Регистрация: 02.04.2010
Сообщений: 2,731
1

Добавить между символами базовой строки один или последовательность символов

20.05.2014, 16:18. Показов 1201. Ответов 8
Метки нет (Все метки)

Есть базовая строка, допустим "мамамылараму" нужно добавить между символами базовой строки один или последовательность символов чтобы получить все возможные комбинации. например символ * в количестве до 5

на выходе должна быть последовательность:
-м*амамылараму
-м*а*мамылараму
-м**а*мамылараму
- ...
-м*****а*****м*****а*****м******ы*****л*****а*****р*****а**** *м*****у

Для непосредственного формирования можно использовать только один цикл (любой, for, while, foreach). Ваши идеи господа
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2014, 16:18
Ответы с готовыми решениями:

Из строки удалить последовательность символов, расположенных между двумя запятыми
Из строки удалить последовательность символов, расположенных между двумя запятыми (считается, что в...

Удалить из строки последовательность символов, расположенных между круглыми скобками
Здравствуйте) Подскажите, плиз, как из строки удалить последовательность символов, расположенных...

Символы строки, встречающиеся в ней ровно один раз и самую длинную последовательность повторяющихся символов
•выводить на экран все символы строки, встречающиеся в ней ровно один раз; •вывести на экран самую...

Исключить последовательность символов, заключенную между двумя определенными символами
.исключить последовательность символов заключенную между двумя определенными символами

8
985 / 883 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
20.05.2014, 16:37 2
Гм, ну конечную строчку в 1 цикл я получил, а вот чтоб всю последовательность... флагов там будет тьма, судя по всему...
0
Эксперт .NET
5308 / 4104 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
20.05.2014, 16:39 3
freeba, так пойдет?
Даже еще проще...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Threading;
using System.Threading.Tasks;
 
 
namespace ConsoleApplication42
{
    class Program
    {
        static void Main(string[] args)
        {
            string myString = "мамамылараму";
            string ToEnterString = "***";
 
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < myString.Length; i++)
            {
                sb.Append(myString[i]);
                if (i < myString.Length - 1)
                    sb.Append(ToEnterString);                
            }
            Console.WriteLine("Result: {0}", sb.ToString());
            Console.ReadLine();
        }
    }
}
1
985 / 883 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
20.05.2014, 16:41 4
insite2012, всю коллекцию ж надо...
или я не так понял?
0
Эксперт .NET
5308 / 4104 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
20.05.2014, 16:43 5
Это наверное я не так понял))) Сейчас подумаю...
0
Неадекват
1443 / 1193 / 233
Регистрация: 02.04.2010
Сообщений: 2,731
20.05.2014, 16:45  [ТС] 6
Да, надо всю коллекцию, массивом или в одной строке через разделитель или просто на консоль вывести - главное условие один цикл, пусть даже запрятанный в LINQ.
0
985 / 883 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
20.05.2014, 17:05 7
Не по порядку, но результат нужный...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Linq;
using System.Text;
 
public class Program
{
    public static void Main()
    {
        
        string input = "1234";
        char ch = '*';
        int count = 3;
        
        Enumerable.Range(1, count * (input.Length - 1) + 1).Select(n => 
        {
            StringBuilder sb = new StringBuilder();
            int offset = 0;
            int max = n;
            while (--max >= 0)
            {
                if (max % count == 0 || max + 1 == n)
                {
                    sb.Append(input[offset++]);
                    if (offset >= input.Length)
                        break;
                }
                sb.Append(ch);
                if (max == 0)
                    sb.Append(input.Substring(offset));
            }
            Console.WriteLine(sb.ToString());
            return sb;
        }).ToArray();
    }
}
Добавлено через 53 секунды
Тут глянуть результат быстро можно - https://dotnetfiddle.net/ta2riO

Добавлено через 1 минуту
Гм, не до конца... но в этом направлении...
Поехал домой, гляну где накосячил-таки
1
1193 / 586 / 88
Регистрация: 20.09.2012
Сообщений: 1,877
21.05.2014, 09:11 8
Лучший ответ Сообщение было отмечено freeba как решение

Решение

Цитата Сообщение от freeba Посмотреть сообщение
Ваши идеи
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
 
namespace A
{
    class Program
    {
        static string[] ins = { "", "*", "**", "***" };
        static int indMax = ins.Length;
        static string myString = "mama";
        static int[] indx = new int[myString.Length - 1];
 
        static bool incc(int y, int carry)
        {
            if ((y == indx.Length)) {
                Console.WriteLine(myString[myString.Length - 1]);
                return (carry != 1); }
            int carry1 = Math.DivRem(indx[y] + carry, indMax, out indx[y]);
            Console.Write("{0}{1}", myString[y], ins[indx[y]]);
            return incc(y + 1, carry1);
        }
 
        static void Main(string[] args)
        {
            while (incc(0, 1)) { };
            Console.ReadKey();
        }
    }
}
http://ideone.com/G4N7tt
1
Неадекват
1443 / 1193 / 233
Регистрация: 02.04.2010
Сообщений: 2,731
21.05.2014, 11:41  [ТС] 9
pycture, Браво

Спасибо всем.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2014, 11:41

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Между символами строки выставить по N символов *
дана непустая строка S и целое число N (&gt;0) . Вывести строку, содержащую символы строки S, между...

Вставка символов между символами исходной строки
нужно сделать такую программу чтобы я писал слово например &quot;куркума&quot; и чтобы выводило...

Дан текстовый файл. Получить последовательность символов, образованную n-ми символами каждой строки. Дописать ее в этот
же файл. Пожалуйста, помогите. Очень срочно нужно.

Удалить из строки последовательность символов, расположенных между круглыми скобками
Разработать программу которая для заданной строки s удаляет из неё последовательность символов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.