Tag: 语言不可知的

生成字形的algorithm

什么是生成字形的最佳策略? An anagram is a type of word play, the result of rearranging the letters of a word or phrase to produce a new word or phrase, using all the original letters exactly once; ex. 十一二 加一是十二加一 小数点是我是一个点的地方 天文学家是月亮的星号 起初看起来非常简单,只是混淆了字母并生成了所有可能的组合。 但是,在字典中只生成单词的有效方法是什么呢? 我遇到了这个页面, 在Ruby中解决anagrams 。 但是你有什么想法?

解决XKCD中的NP完全问题

有问题的问题/漫画: http : //xkcd.com/287/ 我不确定这是做到这一点的最好方法,但是到目前为止,这是我所想到的。 我正在使用CFML,但它应该是任何人都可读的。 <cffunction name="testCombo" returntype="boolean"> <cfargument name="currentCombo" type="string" required="true" /> <cfargument name="currentTotal" type="numeric" required="true" /> <cfargument name="apps" type="array" required="true" /> <cfset var a = 0 /> <cfset var found = false /> <cfloop from="1" to="#arrayLen(arguments.apps)#" index="a"> <cfset arguments.currentCombo = listAppend(arguments.currentCombo, arguments.apps[a].name) /> <cfset arguments.currentTotal = arguments.currentTotal + arguments.apps[a].cost /> <cfif arguments.currentTotal […]

编程语言的performance力是什么意思?

当人们想强调一种语言比另一种语言更好时,我看到很多“performance力”一词。 但是我不明白他们的意思。 是冗长/简洁吗? 我的意思是,如果一种语言可以写下比另一种语言短的东西,那么这是否意味着expression性? 请参考我的其他问题 – 关于代码密度作为衡量编程语言能力的措施的文章 这是语言的力量吗? 保罗·格雷厄姆(Paul Graham)认为,一种语言比另一种语言更强大,因为一种语言可以做另一种语言无法做到的事情(例如,LISP可以使用其他语言无法做到的macros)。 这只是让生活更轻松吗? 正则expression式可以是其中一个例子。 这是解决同一个问题的另一种方式:像SQL解决search问题? 你怎么看待编程语言的performance力? 你能用一些代码来performance出performance力吗? 与performance力和DSL有什么关系? 人们拿出DSL来获得performance力吗?

如何确定使用什么日志级别?

日志级别WARN,ERROR和FATAL非常清晰。 但是什么时候是DEBUG,什么时候INFO? 我已经看到一些在INFO级别上烦人的项目,但是我也看到了一些有利于DEBUG级别的代码。 在这两种情况下,有用的信息都隐藏在噪声中。 什么是确定日志水平的标准?

检查二叉树是镜像还是对称

testing树是否对称的基本algorithm是什么? 因为它是一棵二叉树,所以我会假定它是一个recursion的sorting定义 正式的问题如下: 如果其左右子树是相同的镜像,即二叉树是对称的,则二叉树是其自身的镜像。 最好用几个例子来解释。 1 / \ 2 2 真正 1 / \ 2 2 \ 3 假 1 / \ 2 2 / \ / \ 4 3 3 4 真正 1 / \ 2 2 / \ / \ 3 4 3 4 假 1 / \ 2 2 / \ 3 […]

为什么重新抛出exception?

我多次看过下面的代码: try { … // some code } catch (Exception ex) { … // Do something throw new CustomException(ex); // or // throw; // or // throw ex; } 你能解释重新抛出exception的目的吗? 它遵循exception处理中的模式/最佳实践吗? (我读过的地方叫做“呼叫者通知”模式?)

关于开始编程的build议

你认为从编程开始的年轻人应该在现代使用什么语言和工具? 我们很多人开始使用专有的基础知识,他们并没有做我们所有的长期伤害:)但是鉴于你从那时起的经验,你现在的知识领域有更好的select? 这个问题有相关的疑问,比如“ 教授初学者的最佳方法? ”和“关于开始成年人编程的一个build议 ”,我都提交了答案,但是孩子可能需要不同的工具。 披露:对于这样的问题,select一个“正确的”答案是很难做到的,所以谁能在几天内得到最好的分数,就可以根据社区的select得到我最好的答案。

你使用三元运算符的编码风格?

如果它很短,我保持在一行。 最近我一直在使用这种风格的更长或嵌套的三元运算符expression式。 一个人为的例子: $value = ( $a == $b ) ? 'true value # 1' : ( $a == $c ) ? 'true value # 2' : 'false value'; 个人喜欢你使用哪种风格,或者find最可读的? 编辑:( 关于何时使用三元操作符) 我通常避免使用2级以上的深层三元运算符。 我倾向于更喜欢2级深层三元运算符超过2级别,否则,当我在PHP模板脚本回显variables。

我应该使用`!IsGood`还是`IsGood == false`?

我不断看到这样的检查代码 if (IsGood == false) { DoSomething(); } 或这个 if (IsGood == true) { DoSomething(); } 我讨厌这个语法,总是使用下面的语法。 if (IsGood) { DoSomething(); } 要么 if (!IsGood) { DoSomething(); } 有没有什么理由使用' == true '或' == false '? 这是一个可读性的东西? 人们不理解布尔variables吗? 另外,两者之间有什么performance差异?

为什么背包问题是伪多项式?

我知道Knapsack是NP-complete,DP可以解决。 他们说DP解决scheme是pseudo-polynomial ,因为它是“input长度”(即input编码所需的位数)的指数。 不幸的是我没有得到它。 有人可以慢慢地向我解释这个pseudo-polynomial东西吗?