Tag: 语言不可知的

如何检查给定的string是回文?

定义: 回文是一个单词,短语,数字或其他单元序列,具有在任一方向读取相同的属性 如何检查给定的string是否是回文? 这是FAIQ [常问问题采访问题]之一,但主要使用C. 以任何和所有语言寻找解决scheme。

为什么非默认参数不能遵循默认参数?

为什么这段代码抛出一个语法错误? >>> def fun1(a="who is you", b="True", x, y): … print a,b,x,y … File "<stdin>", line 1 SyntaxError: non-default argument follows default argument 虽然下面的一段代码是正确的… >>> def fun1(x, y, a="who is you", b="True"): … print a,b,x,y … 我正在学习编程,请耐心等待我….

多less抽象是太多了?

在一个面向对象的程序中: 多less抽象是太多了? 多less是正确的? 我一直是一个坚强的人。 我理解高级封装和抽象背后的概念,但总是感到本能地认为添加太多会混淆程序。 我总是试图拍摄一些抽象的东西,没有留下任何空的类或层。 而在有疑问的地方,我不会在层次结构中添加新的图层,而是尝试将某些东西放入现有图层中。 但是,最近我遇到了更高度抽象的系统。 系统中所有可能需要在层次结构中进行表示的事物都可以在前面find。 这导致了很多空的层次,最初看起来像糟糕的devise。 然而,第二个想法是,我已经意识到,留下那些空白的层让你有更多的地方在未来没有太多的重构。 它让你有更大的能力在老的基础上添加新的function,而不用做太多的工作来调整旧的function。 这两个风险似乎是你可以得到你需要的图层错误。 在这种情况下,人们仍然需要做大量的重构来扩展代码,并且仍然会有大量从未使用过的图层。 但是,取决于花费多less时间来提出最初的抽象概念,把它搞砸的可能性,以及如果得到正确的结果,以后可以节省的时间 – 可能还是值得去尝试。 我能想到的另一个风险就是过度做这件事的风险,而且从来不需要所有额外的层次。 但是那真的很糟糕? 额外的课程层次是否真的如此昂贵,以至于如果他们从未被使用过,那么这是多么的失败? 这里最大的开销和损失将是时间,这是失去了前面的层数。 但是,大部分时间仍然可以在以后使用抽象代码而不是更底层的代码来保存。 那么什么时候太多? 什么时候空的层和额外的“可能需要”抽象成为矫枉过正? 多less太less? 甜蜜点在哪里? 在你的职业生涯中,你有没有find可靠的经验法则来帮助你判断所需的抽象数量?

将string转换成莫尔斯电码

挑战 字符计数的最短代码,它将只使用字母字符(大写和小写),数字,逗号,句号和问号input一个string,并返回莫尔斯码中的string表示forms。 莫尔斯电码的输出应该包含一个长音(AKA'dah')的短划线( – ,ASCII 0x2D)和短音(AKA'dit')的一个点( . ,ASCII 0x2E)。 每个字母应该用空格分隔( ' ' ,ASCII 0x20),每个字应该用正斜杠( / ,ASCII 0x2F)分隔。 莫尔斯电码表: 替代文字http://liranuna.com/junk/morse.gif testing用例: Input: Hello world Output: …. . .-.. .-.. — / .– — .-. .-.. -.. Input: Hello, Stackoverflow. Output: …. . .-.. .-.. — –..– / … – .- -.-. -.- — …- . .-. […]

“image / png”和“image / x-png”有什么区别?

“image / png”和“image / x-png”有什么区别?

任何真实的使用软件事务内存的经验?

STM(软件事务内存)框架和语言扩展最近似乎越来越受到关注。 特别是Clojure有一个很好的实现,它使用MVCC(多版本并发控制)而不是滚动提交日志。 GHC Haskell也有一个非常优雅的STM monad ,它也允许交易组成。 最后,为了使我自己的号angular变得有些小,我最近实现了一个Scala的STM框架,它静态地强制引用限制。 所有这些都是有趣的实验,但它们似乎仅限于这个领域(实验)。 所以我的问题是:有没有人在现实世界中看过或使用过STM? 如果是这样,为什么? 它带来了什么样的好处? 性能呢? (关于这一点,似乎有很多矛盾的信息)你会再次使用STM还是更喜欢使用一些像演员一样的其他并发抽象?

为什么recursion比迭代更受欢迎?

迭代比recursion更高效,对吗? 那么为什么有些人认为recursion比迭代更好(用他们的话来说更优雅)呢? 我真的不明白为什么像Haskell这样的语言不允许迭代和鼓励recursion? 鼓励那些性能不好的东西(而且当更多的高性能选项,即recursion可用时)也不是那么荒谬吗? 请说明一下。 谢谢。

智能进度条ETA计算

在许多应用程序中,我们有一些文件下载,压缩任务,search等进度条。我们都经常使用进度条来让用户知道正在发生的事情。 如果我们知道一些细节,比如已经完成了多less工作,还有多less工作要做,我们甚至可以给出一个时间估计,通常是从多less时间推断到达当前的进度水平。 压缩ETA截图http://jameslao.com/wp-content/uploads/2008/01/winrar-progress-bar.png 但是我们也看到了这个剩下时间“ETA”的节目只是非常糟糕。 它声称一个文件拷贝将在20秒内完成,然后一秒钟之后它说要花费4天,然后再闪烁20分钟。 这不仅无益,而且令人困惑! ETA之所以变化如此之大,是因为进度本身可能会有所不同,程序员的math可能过于敏感。 苹果回避这个只是避免任何准确的预测,只是给模糊的估计! 苹果的模糊回避http://download.autodesk.com/esd/mudbox/help2009http://img.dovov.comMED/DaliSP1/English/Install_licensing/install_progress_MAC.png 这也是烦人的,我是否有时间快速rest,还是我的任务要在2秒内完成? 如果预测过于模糊,根本就没有任何预测。 简单但错误的方法 作为第一次ETA计算,可能我们都做了一个函数,如果p是已经完成的分数百分比,t是到目前为止的时间,我们输出t *(1-p)/ p作为需要多长时间才能完成。 这个简单的比例工作“OK”,但它也是可怕的,特别是在计算结束。 如果你的缓慢的下载速度让复制缓慢地前进,在一夜之间,最后在早上,一些东西开始,复制速度加快100倍,你完成90%的ETA可能会说“1小时”,10秒以后你在95%,ETA会说“30分钟”,这显然是一个不好的猜测..在这种情况下,“10秒”是一个更好的估计。 发生这种情况时,您可能会考虑将计算更改为使用最近的速度,而不是平均速度来估计ETA。 您在过去的10秒内获取平均下载速率或完成率,并使用该速率计算完成时间。 在之前的下载过程中,这个performance相当不错,因为它会在最后完成一个非常好的最终完成评估。 但是这仍然有很大的问题。当你的速度在很短的时间内迅速变化时,它会导致你的ETA反弹,你会得到“20秒完成,2小时完成,2秒完成,30完成分钟“快速显示编程的耻辱。 实际的问题是: 考虑到计算的时间历史,计算任务完成时间的最佳方法是什么? 我不在寻findGUI工具包或Qt库的链接。 我在询问这个algorithm来产生最理智和准确的完成时间估计。 你有成功的math公式? 某种平均,也许通过使用超过10秒的速率的均值,超过1分钟的速率超过1小时? 某种人为的过滤方式,如“如果我的新估计与以前的估计有很大的差别,请调低它,不要让它反弹太多”? 一些奇特的历史分析,你整合的进度与时间的进步,find标准差的速度给完成统计误差度量? 你有什么尝试,什么效果最好?

枚举和常量。 哪个使用时?

我正在读取枚举,并发现它们非常类似于声明常量。 我怎么知道什么时候使用常量而不是枚举,反之亦然。 使用枚举有什么好处?

find最less的矩形来覆盖一组没有重叠的矩形的algorithm

我有一组矩形,我想“减less”设置,所以我有最less数量的矩形来描述与原始设置相同的区域。 如果可能的话,我希望它也快,但是我更关心的是尽量减less矩形的数量。 我现在有一个大部分时间都在使用的方法。 目前,我从最左上angular的矩形开始,看看是否可以在保持矩形的同时将它向右和向下展开。 我这样做,直到它不能再展开,删除和拆分所有相交的矩形,并将扩展的矩形添加到列表中。 然后我再次用下一个最左上angular的矩形开始这个过程,依此类推。 但在某些情况下,这是行不通的。 例如: 有了这三个矩形的设置,正确的解决scheme将最终有两个矩形,如下所示: 但是,在这种情况下,我的algorithm从处理蓝色矩形开始。 这向下扩展并拆分黄色矩形(正确)。 但是,当黄色矩形的其余部分被处理时,不是向下扩展,而是先扩展,然后收回之前分割的部分。 然后最后一个矩形被处理,它不能向右或向下扩展,所以原来的一组矩形被留下。 我可以调整algorithm先下拉,然后右下。 这可以解决这个问题,但是在类似的情况下会导致同样的问题。 编辑:只是为了澄清,原来的一组矩形不重叠,不必连接。 如果连接了矩形的一个子集,完全覆盖它们的多边形可以在其中有孔。