我的朋友说可以编写一个C程序,打印“hello world”而不用IF/WHILE/FOR ,也不用分号。 经过最低限度的研究,我告诉她这是不可能的。 可能吗?
给定一组形成一个单词的字符,给出一个有效的algorithm来颠倒单词的顺序(不是字符)。 示例input和输出: >>> reverse_words("this is a string") 'string a is this' 它应该是O(N)时间和O(1)空间( split()和推/popup堆栈是不允许的)。 拼图从这里被拿走。
我在Reddit上看到了这个问题,并没有提出正面的解决scheme,我认为这是一个完美的问题。 这是关于面试问题的一个线索: 编写一个采用大小为m的int数组的方法,如果数组由数字n … n + m-1组成,则返回(True / False),该范围内的所有数字以及该范围内的数字。 数组不保证被sorting。 (例如,{2,3,4}将返回true。{1,3,1}将返回false,{1,2,4}将返回false。 我遇到的这个问题是我的面试官不断要求我优化(更快的O(n),更less的内存等),他声称你可以在一个arrays中使用恒定数量的记忆。 从来没有想过这一个。 随着你的解决scheme,请指出他们是否假设arrays包含独特的项目。 同时指出你的解决scheme是否假定序列从1开始(我已经稍微修改了这个问题,以允许它进入2,3,4的情况) 编辑:我现在认为,在处理重复的空间algorithm中不存在线性时间和常量。 任何人都可以validation此? 重复的问题归结为testing,以查看数组是否包含O(n)时间,O(1)空间中的重复项。 如果可以这样做,您可以先简单testing一下,如果没有重复,则运行发布的algorithm。 那么你能在O(n)时间O(1)空间中testingdupe吗?