Перевернуть строки, содержащиеся в каждой паре совпадающих скобок, начиная с самой внутренней пары - C#

Узнай цену своей работы

Формулировка задачи:

Написал почти всё) Только вот думаю,как реализовать замену в самой исходной строки на найденные подстроки.
Листинг программы
  1. string s = "abc(cba)ab(bac)c";
  2. string pattern = @"\W[a-z]*\W";
  3. Regex rgx = new Regex(pattern);
  4. Match match = rgx.Match(s);
  5. string temp = "";
  6. while (match.Success)
  7. {
  8. temp += match.Groups[0].Value;
  9. match = match.NextMatch();
  10. }
  11. char [] res = temp.Where(x=>Char.IsLetter(x)).ToArray();//найденные подстроки
  12. Array.Reverse(res);//ещё вот с реверсом не до конца всё учел :(
  13. char[] res_1 = s.ToArray();//исходная строка
  14. /*int t = 0;
  15. for (int i =0;i < res_1.Length;i++)
  16. {
  17. if (res_1[i] == '(')
  18. {
  19. }
  20. }
  21. */
  22. Console.Write(res_1);
  23.  
  24. /*"abcabcabcabc"*/
Вот тест-кейсы: s = "a(bc)de" => "acbde" s = "co(de(fight)s)" =>"cosfighted"
-____-

Решение задачи: «Перевернуть строки, содержащиеся в каждой паре совпадающих скобок, начиная с самой внутренней пары»

textual
Листинг программы
  1. string s = "co(de(fight)s)";
  2. for(;;)
  3. {
  4.     string temp = Regex.Replace(s, @"\([^()]+\)", m => m.Value.Substring(1,m.Value.Length-2).Reverse());
  5.     if (s == temp) break;
  6.     s = temp;
  7. }
  8. Console.WriteLine(s);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы