Перевернуть строки, содержащиеся в каждой паре совпадающих скобок, начиная с самой внутренней пары - C#
Формулировка задачи:
Написал почти всё) Только вот думаю,как реализовать замену в самой исходной строки на найденные подстроки.
Вот тест-кейсы:
Листинг программы
- string s = "abc(cba)ab(bac)c";
- string pattern = @"\W[a-z]*\W";
- Regex rgx = new Regex(pattern);
- Match match = rgx.Match(s);
- string temp = "";
- while (match.Success)
- {
- temp += match.Groups[0].Value;
- match = match.NextMatch();
- }
- char [] res = temp.Where(x=>Char.IsLetter(x)).ToArray();//найденные подстроки
- Array.Reverse(res);//ещё вот с реверсом не до конца всё учел :(
- char[] res_1 = s.ToArray();//исходная строка
- /*int t = 0;
- for (int i =0;i < res_1.Length;i++)
- {
- if (res_1[i] == '(')
- {
- }
- }
- */
- Console.Write(res_1);
- /*"abcabcabcabc"*/
s = "a(bc)de" => "acbde"
s = "co(de(fight)s)" =>"cosfighted"
-____-
Решение задачи: «Перевернуть строки, содержащиеся в каждой паре совпадающих скобок, начиная с самой внутренней пары»
textual
Листинг программы
- string s = "co(de(fight)s)";
- for(;;)
- {
- string temp = Regex.Replace(s, @"\([^()]+\)", m => m.Value.Substring(1,m.Value.Length-2).Reverse());
- if (s == temp) break;
- s = temp;
- }
- Console.WriteLine(s);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д