社区讨论

你觉得有可能出现这种情况吗???(在那个else语句里面)

P1229遍历问题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo8fnfdd
此快照首次捕获于
2023/10/27 17:50
2 年前
此快照最后确认于
2023/10/27 17:50
2 年前
查看原帖
CPP
#include<iostream>
#include<string>
using namespace std;

int ans=1;

void dfs(const string& preOrder,int begin,int end,const string& postOrder,int rbegin,int rend){
    if(begin>=end){return;}
    if(rbegin<=rend){return;}
    if(begin+1==end){
        if(preOrder[begin]==postOrder[rbegin]){
            return;
        }
        else{
        
             **//这里               
            //是否会出现这种情况???**
            cout<<"Do not exist this case"<<endl;
           
           
            return;
        }
    }
    else{
        int cut=-1;
        for(int i=rbegin;i>rend;i--){
            if(postOrder[i]==preOrder[begin+1]){
                cut=i;
                break;
            }
        }
        if(cut==rbegin-1){
            ans*=2;
        }
        dfs(preOrder,begin+1,begin+1+(cut-rend),postOrder,cut,rend);
        dfs(preOrder,begin+1+(cut-rend),end,postOrder,rbegin-1,cut);
    }
}

int main(){
    string preOrder,postOrder;
    cin>>preOrder>>postOrder;
    dfs(preOrder,0,preOrder.length(),postOrder,postOrder.length()-1,-1);
    cout<<ans<<endl;
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...