1.3.15

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

方法有很多,只要把所有输入保存,之后算出倒数第 k 个是正数第几个就可以了。
这里先全部入队,之后算出是正数第几个,再把前面的元素全部出队,剩下的第一个就是要求的元素了。

代码

using System;
using Generics;

namespace _1._3._15
{
    /*
     * 1.3.15
     * 
     * 编写一个 Queue 的用例,接受一个命令行参数 k 并打印出标准输入中的倒数第 k 个字符串
     * (假设标准输入中至少有 k 个字符串)。
     * 
     */
    class Program
    {
        static void Main(string[] args)
        {
            Queue<string> queue = new Queue<string>();
            string[] input = "1 2 3 4 5 6 7 8 9 10".Split(' ');
            int k = 4;

            foreach(string s in input)
            {
                queue.Enqueue(s);
            }

            int count = queue.Size() - k;
            for(int i = 0; i < count; ++i)
            {
                queue.Dequeue();
            }

            Console.WriteLine(queue.Peek());
        }
    }
}

另请参阅

Generics 库

上一题 下一题