假设有一群牛要依次入圈和出圈,牛的编号是唯一的且不重复。给定两个牛的序列  enter 和  leave,它们分别表示牛的入圈顺序和出圈顺序。判断是否存在一种操作顺序,使得牛按照给定的入圈和出圈顺序依次进入和离开圈子。如果存在这样的操作顺序,则返回  true,否则返回  false。 注:牛圈狭长,只能先进入的牛必须等后进入的牛出圈后才能出圈。

区块链毕设网qklbishe.com为您提供问题的解答

假设有一群牛要依次入圈和出圈,牛的编号是唯一的且不重复。给定两个牛的序列 enter 和 leave,它们分别表示牛的入圈顺序和出圈顺序。判断是否存在一种操作顺序,使得牛按照给定的入圈和出圈顺序依次进入和离开圈子。如果存在这样的操作顺序,则返回 true,否则返回 false
注:牛圈狭长,只能先进入的牛必须等后进入的牛出圈后才能出圈。
public bool validateCowCircle (List<int> enter, List<int> leave) {
        // write code here
        Stack<int> temp = new Stack<int>();//声明一个栈来来表示牛圈
        int i = 0, j = 0;//声明两个int变量来表示入圈和出圈的索引或者说指针
        while(i < enter.Count){//入圈
            temp.Push(enter[i]);//将当前入圈的牛入栈
            while(temp.Count > 0 && leave[j] == temp.Peek()){
                //判断应当出圈的牛和栈顶的牛的编号是否相同,相同则连续出栈
                temp.Pop();
                j++;
            }
            i++;
        }
        return temp.Count == 0;//判断牛圈是否还剩有牛,没有则返回true
    }

54:19

以上就是关于问题假设有一群牛要依次入圈和出圈,牛的编号是唯一的且不重复。给定两个牛的序列  enter 和  leave,它们分别表示牛的入圈顺序和出圈顺序。判断是否存在一种操作顺序,使得牛按照给定的入圈和出圈顺序依次进入和离开圈子。如果存在这样的操作顺序,则返回  true,否则返回  false。 注:牛圈狭长,只能先进入的牛必须等后进入的牛出圈后才能出圈。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 假设有一群牛要依次入圈和出圈,牛的编号是唯一的且不重复。给定两个牛的序列  enter 和  leave,它们分别表示牛的入圈顺序和出圈顺序。判断是否存在一种操作顺序,使得牛按照给定的入圈和出圈顺序依次进入和离开圈子。如果存在这样的操作顺序,则返回  true,否则返回  false。 注:牛圈狭长,只能先进入的牛必须等后进入的牛出圈后才能出圈。