ricoshong 2017-06-29 14:56
浏览 383

递归解括号匹配一定要双返回值吗?

int f(char str[],int s){ //用这个对字符数组的每一个元素去判断该左括号是否匹配
if (s==strlen(str)){ //返回值大于0就认为这个左括号是匹配的
return -2;
}
else{
if (str[s]=='('){
if (str[s+1]==')'){
return s+1; //其中一个问题在这里 对于形如 (()() 这样的就无法使得第一个元素返回值小于0

}
else {
if (f(str,s+1)>=0){
return f(str,f(str,s+1)+1);
}
else{
return -2;
}
}
}
else {
return s;
}
}
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 高价求中通快递查询接口
    • ¥15 解决一个加好友限制问题 或者有好的方案
    • ¥15 关于#java#的问题,请各位专家解答!
    • ¥15 急matlab编程仿真二阶震荡系统
    • ¥20 TEC-9的数据通路实验
    • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
    • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
    • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
    • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
    • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?