我正在使用的字符串与下面写的字符串类似:
String_1
=
'
{2,2,1,1,{1,1,2,2,{1,2,{1,1,1,1,1}},2,2},{1,2,{1,2,2,2,2,2},2},{1,1},2,2,2,2,1,1,1,1,1}
'
;
首先,我必须随机选择字符串中的一个数字。然后,我必须将所选数字中的字符串提取到第一个}
中,并使用它创建另一个字符串(参见图A)。注意,我们只从left移动到right side。
但是,如果在所选数字内有n
左方括号,我们必须跳过以找到我们要查找的右方括号,如图B中所示。
如果您有任何意见或建议,请让我知道。谢谢你,
发布于 2018-06-02 09:04:09
首先,找到1
和2
的位置,以获得随机位置。
inds = find(String_1 == '1' | String_1 == '2');
random_number_pos = inds(randi(length(inds)));
现在,我们可以使用堆栈的概念来查找第一个未打开的}
。
parentheses_opened = 0;
start_ind = random_number_pos + 2; end_ind = 0;
for ind = (random_number_pos + 2):length(String_1)
if(String_1(ind) == '}' && parentheses_opened == 0)
end_ind = ind - 1;
break;
elseif(String_1(ind) == '{')
parentheses_opened = parentheses_opened + 1;
elseif(String_1(ind) == '}')
parentheses_opened = parentheses_opened - 1;
end
end
String_2 = String_1(start_ind:end_ind);
String_1((start_ind - 1):(end_ind + 1)) = [];
https://stackoverflow.com/questions/50652259
复制相似问题