Я пытаюсь выполнить несколько задач по кодированию. У меня проблемы с выяснением логики решения этой проблемы. Я использую C #.
Задача:
Нам дана строка с именем para = "((()())";
, а внутри - несколько круглых скобок. Нам также дается index = 1
, где индекс всегда является значением в строке, которая начинается с (
. Поэтому, если мы преобразуем наш para.ToCharArray
, наш index 1 would = '('
.
С помощью кода, я очень близко подошел к его решению, но не могу обернуть его вокруг.
Ниже приведен мой код, копирование и вставка которого должны работать нормально.
string para = "((())())";
char[] charPara = para.ToCharArray();
int charParaCount = charPara.Length;
int index = 1;
for (int i = index; i < charParaCount; i++)
{
if(charPara[index] == '(' && charPara[i] == ')' && charPara[i-1] != '(')
{
Debug.WriteLine("index is: " + index + " and i is: " + i);
}
}
Теперь желаемый результат должен быть равен WriteLine
с правильным индексом коррелирующих скобок. В нашем случае выше с index = 1
мы находим его, и это 4
, но мы также получаем индекс последних скобок, который равен 7
.
Я застрял на том, как логически решить эту проблему, Мы ценим любые предложения.
ПРИМЕР ВХОДНОГО ВЫХОДА:
Наша входная строка string para = "((())())";
, а наш входной int int index = 1;
. Ожидаемый результат для этого будет позиция 4
, потому что в массиве char 4
будет закрывающими скобками для индекса 1.