编程面试题

  • Stomp.py从侦听器返回消息

    由于将在接收方线程中调用侦听器,因此,如果要在其他线程(例如主线程)中处理消息,则应执行线程切换。 线程切换的一个简单示例是使用具有锁定功能的共享变量,并在接收方线程接收到消息时更新该变量。并且,在另一个线程中读取该变量,但是您需要使用适当的同步机制来确保您不覆盖消息,并且不会遇到死锁。 这是在锁定中使用某些全局变量的示例代码。 rcvd_msg = None lock = t

  • 生成正则表达式的所有可能匹配项

    尽管执行这些步骤可能需要一些工作,但您的步骤非常简单: 创建一个递归函数,该函数提取所涉及的第一组括号之间的字符串: 在函数中,将此字符串分割','为avectorstring并返回 如果由于嵌套括号而需要进行递归,则在返回测试之前,对于递归函数返回的每种可能组合,必须在返回值中添加一个字符串

  • Heroku,Django,工头

    Gunicorn不能在Windows上运行,因此您需要一个单独的系统来本地运行代码。您正在运行什么框架? 通常,您可以使用内置的开发服务器(例如Django的python manage.py runserver)在本地进行开发,而仅在Heroku本身上使用gunicorn

  • 数组的不同组合(C#)

    static void Main { var cnk = combnew [] {1,2,3},2; foreach var c in cnk { } } public static IEnumerableint[] combint[] a, int k { if a == null || a.Length

  • 在日期的日期,月份或年份中添加数字

    在.NET中,您可以使用以下AddMonths方法: DateTime date = new DateTime2013, 5, 19; DateTime newDate = date.AddMonths14;

  • 在Windows上运行COPY命令时出现酸洗错误:CQLShell

    所以我去测试了一下。我在Windows和Linux上的Cassandra 2.1.5( 顺便说一句,您使用的是哪个版本? )中创建了两个简单的表。然后,我分别在每个上测试了COPY TO FROM。 Linux(Ubuntu 14.04.2 LTS): Connected to Test Cluster at dockingbay94:9042. [cqls

  • 存储数千个电话号码的最有效方法

    这是对aix答案的改进。考虑对数据结构使用三个“层”:第一个是前五个数字(17位)的常量;因此从这里开始,每个电话号码只剩下剩余的五位数。我们将剩下的五个数字视为17位二进制整数,并使用一种方法存储这些位的 k ,使用另一种方法存储17- k = m ,最后确定 k 以最小化所需的空间。 我们首先对电话号码进行排序(所有电话号码均减少为5个十

  • 数据描述符和非数据描述符的正确定义是哪一个?

    第二个引用是正确的。第二个引号来自Python语言参考(尽管您提供了错误的链接),并且该语言参考被认为比使用指南更具权威性。而且,它与实际行为匹配;在a href="https:docs.python.org3c-apidescriptor.html#c.PyDe

  • Python按值搜索

    标准方法: for k, v in SERVICES.items: # or iteritems in Python 2 if 'check' in v: printk # 'domain' break 如果您希望有多个匹配条件的键,只需删除即可break。

  • 在哪里可以找到“算法设计手册”的解决方案?

    该书的网站algorist.com上有一个包含解决方案的Wiki。

  • Max-Heapify中最坏的情况-如何获得2n / 3?

    在每个节点上恰好有0个或2个子节点的树中,具有0个子节点的节点数比具有2个子节点的节点数多1。{说明:高度为h的节点数为2 ^h,几何级数的求和公式等于(从0到h-1的节点总和)+1;并且所有从高度0到h-1的节点都是正好有2个子节点的节点} ROOT L R \ \ \ \ ----- ----- ***** 令k为

  • 检测点“簇”的算法

    如何为您的空间定义一个任意分辨率,并为该矩阵中的每个点计算从该点到所有点的距离的度量,然后可以制作一个“热图”并使用阈值来定义聚类。 这是一个很好的处理过程,也许以后我会发布解决方案。 编辑: 这里是: load the image PImage sample; sample = loadImage"test.png"; sizesample.wid

  • 如何将python源代码保护和编译到.so库中?

    正如mgilson在评论中提到的那样,Cython可能是您最好的选择。一般来说,您可以使用它将纯python源代码转换为已编译的扩展模块。尽管Cython的主要目的是提高性能,但是使用Cython进行源代码保护应该没有任何障碍。它输出的扩展模块没有任何特殊的限制,因此您以前可以在Python中执行的任何操作,都应该可以从Cython生成的扩展模块中执行。Cython在受支持的功能方面确实存在一些已知的限制,但总的来说,它看起来很适合满足您的目的。

  • O(log N)== O(1)-为什么不呢?

    我认为这是一种务实的方法。O(logN)永远不会超过64。在实践中,每当项变得比O(logN)小时,您就必须进行测量以查看常数因子是否胜出。也可以看看 引用其他答案的意见: [Big-Oh]“分析”仅对至少为O(N)的因素起作用。对于任何较小的因素,大欧姆分析都是无用的,您必须进行测量。 和

  • 您将如何编写程序以生成Haiku?

    不要尝试将 诗歌 与金属和碎片混合得不好 更严重的是,好的句(甚至是坏的ku句)比起对音节的计数,更多的是浓缩意义和意象。它通常也基于从自然界中收集的主题。随机单词的产生和音节计数将使您测得乱七八糟,但诗歌却没有。

  • 随时间平滑值:移动平均还是更好的?

    如果您的移动平均线必须很长才能达到所需的平滑度,并且您实际上并不需要任何特定形状的内核,那么使用指数衰减的移动平均线会更好: ai+1 = tiny*datai+1 + 1.0-tiny*ai 在此处选择tiny一个适当的常数(例如,如果选择tiny = 1-1 N,则其平均数量将与大小为N的窗口相同,但在较旧的点上分布不同)。

  • numpy python中的“ IndexError:索引过多”

    我建议使用numpy.matrix代替ndarray,无论您有多少行,它都保持2的尺寸: In [17]: x Out[17]: array[[0, 1, 2], [3, 4, 5], [6, 7, 8]] In [18]: m=np.asmatrixx In [19]: m[1] Out[19]: matrix[[3

  • 最长等距子序列

    更新: ArminRigo的第二个答案已废除了这里描述的第一个算法,该算法更简单,更有效。但是这两种方法都有一个缺点。他们需要许多小时才能找到一百万个整数的结果。因此,我尝试了另外两个变体(请参阅此答案的后半部分),其中假定输入整数的范围是有限的。这种限制允许更快的算法。我也尝试优化Armin Rigo的代码。最后查看我的基准测试结果。 这是使用O(N)内存的算法思

  • 两个字符串中的常见字母

    用途collections.Counter: from collections import Counter Counter'common' Counter{'m

  • 合并排序的最坏情况何时发生?

    合并排序的最坏情况是合并排序必须进行 最大数量的比较。 因此,我将尝试以自下而上的方式构建最坏的情况: 假设排序后最后一步的数组是 {0,1,2,3,4,5,6,7} 在最坏的情况下,此步骤之前的数组必须是{0,2,4,6,1,3,5,7}因为此处left s

  • 查找二叉树是否为二叉搜索树

    这是一个众所周知的问题,具有以下答案: public boolean isValidNode root { return isValidBSTroot, Integer.MIN_VALUE, Integer.MAX_VALUE; } private boolean isValidBSTNode node, int l, int h { ifnode == nu

  • 尝试在python中发布多部分表单数据,不会发布

    import urllib, urllib2 from poster.encode import multipart_encode from poster.streaminghttp import register_openers def queXF: register_openers url = "http:lilix2trunkadminnew.php" values = {'for

  • 我如何合并两个二叉树

    不考虑效率,这个答案可能有效。结合两个二叉树的算法?。如果分类或平衡,请在如何有效地合并两个BST的效率中讨论效率。和串联合并联接两个AVL树

  • 如何在不溢出RAM的情况下为非常大的文件生成校验和并转换为Javascript中的64位?

    在下面的代码行中有一个逻辑问题: start = chunkCount * SIZE_CHECKSUM; --- bug 将该变量 start 初始化为0,然后在第一次迭代中再次重置为0,这是不对的。 以下是使用问题中提到的相同库“ emn178 js-sha256st

  • 在Linux上没有CUDA的情况下如何使用TensorFlow?

    如果您使用来构建二进制文件--config=cuda(已完成tensorflow- gpu),则您的计算机必须具有GPU驱动程序。即使机器没有GPU,也可以在机器上安装GPU驱动程序,这是常见的实用解决方案。 发生的事情是在代码中--config=cuda设置了a href="https:github.comtensorflowtensorf

  • 如何创建高效的自动完成功能?

    本质上,似乎您正在寻找自动完成功能(如果我正确理解了您的问题)。沿着这些思路,上述问题及其答案也为如何做更复杂的建议(即基于内容,语义,意图等)提供了大量参考。 如果您正在寻找提出“相关”建议的算法,那么这可能不会解决您的问题,例如: “水”可能建议使用酷乐,佳得乐,维生素水。 “大海”可能暗示海洋,湖泊,河流

  • 计算轨迹(路径)中的转折点/枢轴点

    您可以使用Ramer-Douglas-Peucker(RDP) 算法来简化路径。然后,您可以计算沿简化路径的每个线段的方向变化。与方向最大变化相对应的点可以称为转折点: 可以在github上找到RDP算法的Python实现。 im

  • 如何将字符串作为变量插入字符串?

    我知道有4种方法可以在python(Python 3)上实现: 1)串联: 您可以使用此方法+来连接2个字符串,但是只能连接字符串类型数据,这意味着需要使用该str函数将非字符串类型数据转换为字符串。例如: print"The Enemy's health is " + strEnem

  • Xnary(类似于二进制但不同)计数

    也称为Excel列编号。A = 0, ..., Z = 25, AA = 26, ...至少对于计算而言,如果移动一个,会更容易。对于您的方案,在转换为Xnary响应之前,所需要做的就是减去1。转换后的加法。 因此,通过修改,让我们开始寻找转换。首先,我们需要编码多少个符号n?嗯,有26个一位数字,26 ^ 2个两位数字,26 ^3个三位数字等。因此,最多使用d

  • 如何强制py2app在32位模式下运行应用

    一种方法是使用py2app使用仅32位的Python,例如可从python.org下载的仅32位版本。另一个方法是将设置为LSArchitecturePriority,i386并且可能ppc在生成的应用捆绑包的Info.plist中。有关更多信息,请参见a href="http:developer.apple.comlibrarymac#documentat

  • 给定2个整数排序数组,找到次线性时间中的第n个最大数字[重复]

    我认为这是对子数组A[0..n-1]和的两个并发二进制搜索B[0..n-1],即O(log n)。 给定排序数组,您知道 第n个 最大数组将出现A[n-1]在array 之前或之后的某个位置A,或者B[n-1]是否在array中B

  • 从音轨中消除人声的算法

    这不是“技巧”,而是“算法”,但可以通过代码自动实现。它主要用于人声居中的立体声轨道。如果人声居中,则它们在两个音轨中均等地体现。如果您反转其中一条音轨,然后将它们合并在一起,则中心人声的波形会被抵消并被消除。您可以使用大多数出色的音频编辑器(例如audacity)手动进行此操作。它不能为您提供完美的结果,其余音频也会受到一些影响,但它会产生出色的卡拉OK音轨:

  • 活动编辑器的pydev控制台路径

    我使用了一些技巧来使其正常工作。如果我理解您的问题,则希望将IPython环境中的当前工作目录设置为活动文件所在的目录。因此,如果您正在编辑D:projectsfile.py,则希望pwd()命令(在IPython中)返回D: projects。这就是我的解决方案中被黑的部分。我所有的项目都在D驱动器上,但是所有常规的python导入都来自C驱动器上的安装位置。因此,以下内容: os.env

  • 当前最安全的单向加密算法是什么?

    警告: 自从此文章撰写于2010年以来,GPU已广泛部署到暴力破解密码哈希。价格适中的GPU 每秒可以运行 一百亿个 MD5。这意味着即使是完全随机的8个字符的字母数字密码(62个可能的字符)也可以在6小时内被强行使用。SHA-1只会稍微慢一点,需要一天的时间。您用户的密码要弱得多,并且(即使加盐)也会以每秒数千个密码的速度下降。哈希函数

  • 使用杂耍算法旋转数组

    GCD如何确定旋转阵列所需的周期数? 因为内部循环以的步长递增d,并在返回起点时停止,即总跨度是的倍数n。那是LCMn, d。因此,该循环中的元素数为LCMn, d d。这样的循环总数为n LCMn, d d,等

  • 使用Python更新MS Word .docx文档的目录(目录)

    这是一个片段,用于更新单词2013 .docx文档的目录,其中仅包含一个目录(例如,仅标题的TOC,不包含图形的TOC等)。如果使用python的系统安装程序从命令promt(Windows 10,命令promt不“以管理员身份运行”)运行脚本 update_toc.py , 则会 在同一目录中python update_toc.py打开

  • 如何为任意自然数n生成n种不同的颜色?

    100种颜色很多,但您可以通过在HSB或HSL空间中尽可能少地分配它们来实现。在RGB中执行此操作可能很困难。 例如,您可能决定使用10种不同的色相,4种不同的饱和度级别和3种不同的亮度设置,最多可以提供120种颜色。您需要仔细选择饱和度和亮度值。人眼是复杂且令人困惑的传感器。如果将颜色空间视为圆锥体,则在每个亮度饱和度级别上可能需要不同数量的色相。 这是a href="http:en.wikipedi

  • ipaddress和mac地址的正则表达式

    import re s = "http:[ipaddress]SaveData127.0.0.100-0C-F1-56-98-AD" re.searchr'[0-9A-F]{2}[:-]{5}[0-9A-F]{2}', s, re.I.group '00-0C-F1-56-98-AD' re.searchr'2[0-5]|1[0-9]|[0-9]?[0-9]\.{3}2[0-5]|1[

  • 查找N个唯一字符的最长子串

    有一个O(n)。让S是字符串。刚去通过阵列有两个指针i和j并跟踪数K之间不同的字母S[i]和S[j]。增量j每当这个数小于或等于n和增量i每当K大于n。还要记住最长

  • 在数据库中的一组记录上存储排序顺序的最有效方法是什么?

    仅使用integer定义顺序的列怎么办?默认情况下,您分配的数字* 1000,例如1000、2000、3000 ....,如果在1000和2000之间移动3000,则将其更改为1500。因此,在大多数情况下,您根本不需要更新其他数字。我使用这种方法,并且效果很好。您也可以使用,double但是这样就无法控制精度和舍入误差,因此请不要使用它。 因此