示例#1
0
        ////zie Blackboard voor opdrachten uitleg

        //Palindrome checker.
        //Schrijf een methode (Paldindroom) die gegeven een string bekijkt of het een palindroom betreft.
        //Leestekens, spaties en case (kleine of hooddletters) moet je negeren.
        //gebruik 1 Stack en 1 Queue.
        //tip: itereer 1 keer door de string!

        //De voorbeeld palindromen: http://home.wxs.nl/~avdw3b/palindr.html

        public bool Palindroom(string input)
        {
            IStack <char> s = StackFactory.CreateStack <char>();
            IQueue <char> q = QueueFactory.CreateQueue <char>();

            throw new NotImplementedException();
        }
示例#2
0
        ////zie Blackboard voor opdrachten uitleg

        //Palindrome checker.
        //Schrijf een methode (Paldindroom) die gegeven een string bekijkt of het een palindroom betreft.
        //Leestekens, spaties en case (kleine of hooddletters) moet je negeren.
        //gebruik 1 Stack en 1 Queue.
        //tip: itereer 1 keer door de string!

        //De voorbeeld palindromen: http://home.wxs.nl/~avdw3b/palindr.html

        public bool Palindroom(string input)
        {
            List <char> ignore = new List <char> {
                ' ', '.', ',', '\''
            };
            IStack <char> s = StackFactory.CreateStack <char>();
            IQueue <char> q = QueueFactory.CreateQueue <char>();

            if (input == null)
            {
                return(false);
            }
            input = input.ToLower();
            foreach (char karakter in input)
            {
                if (!ignore.Contains(karakter))
                {
                    s.Push(karakter);
                    q.Enqueue(karakter);
                }
            }
            if (s.Count == 0)
            {
                return(false);
            }

            for (int i = 0; i < s.Count; i++)
            {
                if (s.Pop() != q.Dequeue())
                {
                    return(false);
                }
            }
            return(true);
        }
示例#3
0
        ////zie Blackboard voor opdrachten uitleg

        //Opgave 2. Er staan k mensen in een rij (queue).
        //De mensen worden in volgorde genummerd van 1,2,3,...,k
        //als je vooraankomt bij het loket wordt je in tweeën gesplitst en sluit je achteraan.
        //wie wordt als nummer n behandelt (staat vooraan in de rij).
        //je moet dus n-1 mensen behandelen, en dan staat de n-de vooraan in de rij

        //Optioneel: je kan dit ook uitrekenen zonder gebruik te maken van een queue
        // er bestaat een formule om dit in een keer uitterekenen geven n en k.
        // De optionele vraag is, bedenk deze formule en maak hiervoor een programma.

        //Voorbeeld
        //k = 4, n = 3  (test1)
        //q = 1 2 3 4           n=1  ==> 1
        //q = 2 3 4 1 1         n=2  ==> 2
        //q = 3 4 1 1 2 2       n=3  ==> 3  (antwoord)

        //k = 4, n = 5  (test2)
        //q = 4 1 1 2 2 3 3     n=4 ==> 4
        //q = 1 1 2 2 3 3 4 4   n=5 ==> 1   (antwoord)
        //q = 1 2 2 3 3 4 4 1 1 n=6 ==> 1
        //etc

        public int DoubleQueueProblem(int k, int n)
        {
            IQueue <int> people = QueueFactory.CreateQueue <int>();

            for (int i = 0; i < k; i++)
            {
                people.Enqueue(i + 1);
            }
            for (int i = 1; i < n; i++)
            {
                int getal = people.Dequeue();
                people.Enqueue(getal);
                people.Enqueue(getal);
            }
            return(people.Dequeue());
        }
示例#4
0
        ////zie Blackboard voor opdrachten uitleg

        //Opgave 2. Er staan k mensen in een rij (queue).
        //De mensen worden in volgorde genummerd van 1,2,3,...,k
        //als je vooraankomt bij het loket wordt je in tweeën gesplitst en sluit je achteraan.
        //wie wordt als nummer n behandelt (staat vooraan in de rij).
        //je moet dus n-1 mensen behandelen, en dan staat de n-de vooraan in de rij

        //Optioneel: je kan dit ook uitrekenen zonder gebruik te maken van een queue
        // er bestaat een formule om dit in een keer uitterekenen geven n en k.
        // De optionele vraag is, bedenk deze formule en maak hiervoor een programma.

        //Voorbeeld
        //k = 4, n = 3  (test1)
        //q = 1 2 3 4           n=1  ==> 1
        //q = 2 3 4 1 1         n=2  ==> 2
        //q = 3 4 1 1 2 2       n=3  ==> 3  (antwoord)

        //k = 4, n = 5  (test2)
        //q = 4 1 1 2 2 3 3     n=4 ==> 4
        //q = 1 1 2 2 3 3 4 4   n=5 ==> 1   (antwoord)
        //q = 1 2 2 3 3 4 4 1 1 n=6 ==> 1
        //etc

        public int DoubleQueueProblem(int k, int n)
        {
            IQueue <int> people = QueueFactory.CreateQueue <int>();

            throw new NotImplementedException();
        }