Tag: 语言不可知的

数据结构是“侵入性”意味着什么?

我已经看到用于描述数据结构(如列表和堆栈)的术语intrusive ,但这是什么意思? 你能给出一个侵入式数据结构的代码示例,以及它与非侵入式数据结构有什么不同? 另外,为什么让它侵入(或非侵入性)? 有什么好处? 有什么缺点?

应该是“安排 – 断言 – 行为 – 断言”?

关于Arrange-Act-Assert的典型testing模式,我经常发现自己在Act之前加了一个反指。 通过这种方式,我知道传递的断言确实是作为行动的结果而传递的。 我认为这与红绿重构中的红相似,只有当我在testing过程中看到红条时,我才知道绿条意味着我编写了代码才能起作用。 如果我写一个合格的testing,那么任何代码都能满足它; 同样,关于安排 – 断言 – 行为 – 断言,如果我的第一个断言失败了,我知道任何法案都会通过最后的断言 – 所以它实际上并没有对该法案进行任何validation。 你的testing是否遵循这种模式? 为什么或者为什么不? 更新说明 :最初的断言本质上与最终断言相反。 安排工作并不是一个断言。 这是一个断言,行为尚未奏效。

一个algorithm来分隔重叠的矩形?

这个问题实际上涉及到翻转,我将在下面概括如下: 我有一个2D视图,并在屏幕上的区域内有一些矩形。 我该如何分开那些不相互重叠的盒子,而只是用最小的移动来调整它们呢? 矩形的位置是dynamic的,取决于用户的input,所以它们的位置可以在任何地方。 附 图像显示问题和所需的解决scheme 真正的生活问题实际上是处理翻滚。 回答评论中的问题 矩形的大小是不固定的,并且取决于翻转中文本的长度 关于屏幕尺寸,现在我认为最好假设屏幕的尺寸足够矩形。 如果有太多的矩形和algorithm没有解决scheme,那么我只需要调整内容。 “最小限度地移动”的要求比绝对的工程要求更适合美学。 通过在两个矩形之间增加一个很大的距离,可以划出两个矩形,但是作为GUI的一部分,它看起来不太好。 这个想法是让翻转/矩形尽可能靠近它的源头(然后我用黑线连接到源)。 所以无论是“只移动一个x”还是“移动两个x”都没问题。

简单的死锁例子

我想解释给新手解决死锁问题。 过去我见过很多死锁的例子,有的使用代码,有的使用插图(比如着名的4辆汽车 )。 也有经典的容易僵化的问题,如餐饮哲学家 ,但这些可能太复杂,真正的新手要完全掌握。 我正在寻找最简单的代码示例来说明什么是死锁。 这个例子应该: 相关的是一个“真实”的编程场景,这是有道理的 非常简短,直截了当 你有什么build议?

什么是Map / Reduce?

我听到很多关于map / reduce的信息,特别是在Google大规模并行计算系统的背景下。 究竟是什么?

为什么Math.pow(0,0)=== 1?

我们都知道0 0是不确定的。 但是 , JavaScript说: Math.pow(0, 0) === 1 // true 而C ++也是这样说的: pow(0, 0) == 1 // true 为什么? 我知道: >Math.pow(0.001, 0.001) 0.9931160484209338 但为什么Math.pow(0, 0)不会抛出任何错误? 或者,也许NaN会比1 。

例外或错误代码

昨天我和一个同事进行了一场激烈的辩论,首先是错误报告方法。 主要是讨论使用exception或错误代码来报告应用程序层或模块之间的错误。 您使用什么规则来决定是否抛出exception或返回错误报告的错误代码?

单片和微内核有什么区别?

任何人都可以请示例单片和微内核之间的差异解释? 还有其他的内核分类?

代码高尔夫:玩俄罗斯方块

基础: 考虑下面的tetromino和空场地: 0123456789 IOZTLSJ [] [] ### ## ###### ## [] ### #######[] ### ## [] #[] [==========] 比赛场地的大小是固定的。 顶部的数字就是在这里表示列号(也见input)。 input: 1 。 你被赋予了一个特定的运动场(基于上面),这个运动场已经可以被部分填充tetrominoes(这可以在一个单独的文件中或者通过stdin提供)。 示例input: [] [] [] [] [###] [## ######] [==========] 2 。 给你一个string来描述(用空格分隔)哪个tetromino插入(和下拉)在哪一列。 Tetrominoes不需要旋转。 input可以从标准input读取。 示例input: T2 Z6 I0 T7 你可以假设input是“格式良好的”(或不产生不确定的行为)。 产量 渲染结果字段(“完整”行必须消失)并打印分数(每个丢弃的行占10分)。 基于上面的示例input的示例输出: [] [] [] [####] [####] [##### ####] [==========] […]

程序员谜题:在整个游戏中编写一个棋盘状态

不是严格的问题,更多的是一个难题 多年来,我参与了一些新员工的技术面试。 除了问标准“你知道X技术”这个问题之外,我还试图去了解他们如何解决问题。 通常情况下,我会在面试的前一天通过电子邮件向他们发送问题,并期待他们在第二天提出解决scheme。 结果往往是相当有趣的 – 错误的,但有趣的 – 如果他们能解释为什么他们采取了特定的方法,那么他仍然会得到我的build议。 所以我想我会为Stack Overflow观众提出我的一个问题。 问题: 如何编码国际象棋游戏(或其子集)的时候,可以考虑的最节省空间的方法是什么? 也就是说,如果棋盘上有合法排列的棋子,则编码这个初始状态以及游戏中玩家采取的所有后续合法行为。 答案不需要代码,只需要描述你将要使用的algorithm。 编辑:正如其中一个海报已经指出,我没有考虑到移动之间的时间间隔。 随意作为一个可选的额外的:) 编辑2:只是为了进一步澄清…请记住,编码器/解码器是规则感知。 真正需要存储的唯一东西是播放器的select – 编码器/解码器可以假定其他任何东西。 编辑3:这里将很难挑选一个胜利者:)很多伟大的答案!