编程面试题

  • 有没有办法回答(或忽略)所有y / n提示“ y”?

    从这里阅读: %reset_selective [-f]正则表达式

  • 如何在Java中将工作日添加到当前日期?

    您可能要考虑使用ObjectLab Kit为您完成繁重的工作。 假设要求只是在计算日期为非工作日时返回下一个工作日: package bizdays.example; import java.time.LocalDate; import java.util.HashSet; import ne

  • Python元组分配和条件语句检入

    这是因为用逗号分隔的表达式是在整个逗号分隔的元组(这是Python语法术语中的“表达式列表”)之前进行求值的。因此,当您这样做时foo_bar_tuple=="foo", "bar",将被解释为foo_bar_tuple=="foo", "bar"。在a href="http:docs.python.org2.7referenceexpressions.html#expressi

  • 跨线反射点的算法

    好的,我将为您提供一种烹饪方法。如果您对我的衍生方式感兴趣,请告诉我,我会解释。 给定x1, y1和一条线,y = mx + c我们希望该点x2, y2反映在该线上。 组 d:= x1 + y1 - c*m1 + m^2 然后 x2 = 2*d - x1

  • 计算组合的等级?

    这是一个概念性的答案,以及基于词法排序原理的代码。(因此,我想我的答案类似于“白痴”,只是我认为他的细节太少,链接的内容也太多。)我unchoosen,S为您编写了一个函数,假定S是的有序列表子集rangen。这个想法:S要么包含0,要么不包含0。如果是这样,请删除0并计算其余子集的索引。如果不是,则在binomialn-1,k-1确实包含0 的子集

  • 不同目录下的不同导入结果

    此行为表明您有一个文件: somedirMyPak__init__.py 其中,您执行以下操作: from MyMod import * 当您import MyPak从中导入时,__init__.py同样地,当您from MyPak im

  • 在O(K * log(K))中打印给定堆中最大的K个元素?

    在最大堆中这是可能的,因为您仅从树中打印元素,而不提取它们。 首先确定最大元素,该元素位于根节点。形成一个指向节点的指针,并将其添加到否则为空的“最大”列表中。然后,对于每个k值,循环执行以下步骤。 从列表中弹出最大元素,取O(1)。 打印其值,取O(1)。 将这个最大元素的每个孩子插入列表。插入它们时要保持排序,花费O

  • 如何在Python中打包任意位序列?

    内置的东西并不十分方便,但是为此目的设计了第三方模块,例如bitstring和bitarray。 fr

  • 迭代树走

    如果您要进行广度优先搜索,自然的实现是将节点推入队列,而不是使用递归。 如果要进行深度优先搜索,则递归是编码遍历的最自然的方法。但是,除非您的编译器将尾部递归优化到迭代中,否则递归实现将比迭代算法慢,并且将死于足够深的树上的堆栈溢出。 一些快速的Python来说明差异: #A tree is a tuple of an int and a tree. t = 1, 2,

  • Python中的MemoryError钩子?

    这不是处理内存管理的好方法。在看到MemoryError时,您已经处于临界状态,内核可能已经接近杀死进程以释放内存,在许多系统上,您将永远看不到它,因为它将进行交换或只是OOM- 杀死您的进程,而不是失败分配。 您可能会看到MemoryError的唯一可恢复的情况是,在尝试进行不适合可用地址空间的非常大的分配之后,这仅在32位系统上很常见。 如果您希望有一个高速缓存可以根据其他分配的需要释放内存

  • 将数字列表拆分为n个块,以使这些块具有(接近)相等的总和并保持原始顺序

    这种方法定义了分区边界,该分区边界将数组划分为大致相等数量的元素,然后反复搜索更好的分区,直到找不到更多分区为止。它与大多数其他已发布的解决方案的不同之处在于,它通过尝试多个不同的分区来寻找最佳解决方案。其他解决方案尝试通过数组的一次通过来创建良好的分区,但是我想不出保证最佳的一次通过算法。 此处的代码是该算法的有效实现,但可能很难理解,因此在末尾包含了更具可读性的版本作为附录。 def par

  • 装饰方法(类方法重载)

    您的基本问题是使用类代替函数。没有将该类绑定到调用它的实例的机制,这与自动执行该函数的函数不同。 简而言之,当您执行a.foo .. 此操作时,它会返回MultiMethod,但该对象并不知道应该绑定到a。 您必须以某种方式传递实例。一种简单的方法是将所有内容包装在一个函数中,然后让Python完成操作:

  • 什么是概率数据结构?

    可能有很多不同的(很好的)答案,但是据我拙见,概率数据结构的共同特征是它们为您提供了近似而不精确的答案。 这里有几件?大约1523425,概率为99% 更新:快速搜索产生了有关该问题的体面文章的链接: a href="https:highlyscalable.wordpress.com20120501probabilistic- structures-web-analytics-

  • 熊猫中的递归SQL CTE查询?

    首先,您需要更正python代码MgrID列表中的错字: [0,1,1,2,0,0,5,6] 其次,如果这项工作是在SQL中以递归方式完成的,为什么您期望Python Pandas可以不用递归方法来完成呢?并不难: def nlevelid, mgr_dict=df.MgrID, _cache={0:0}: if id in _

  • 如何在给定的文本中找到匹配括号或大括号的位置?

    给定一个圆括号在字符数组中的位置,有一个简单的算法使用计数器来找到匹配的圆括号。 将计数器初始化为1。 在文本中向前(向右)循环。 如果遇到另一个开放的括号,请增加计数器。 如果遇到右括号,则递减计数器。 当计数器达到零时,您已经找到了匹配的右括号。

  • 树中的中心节点

    继续从树中删除叶节点,直到剩下一个节点为止(如果剩下两个节点,则删除其中一个节点)。该节点最大程度地减少了它与其他每个节点的最大距离。 例: * * \ \ * * * * \ \

  • 用于代码的行探查器是否需要解析树,是否足够?

    我想说的是,您需要一个解析树(和源)-您还怎么知道什么构成“行”和有效语句? 实际的简化可能是“语句分析器”而不是“线路分析器”。在R中,分析树很容易使用:bodytheFunction,因此在每个语句周围插入测量代码应该相当容易。通过更多的工作,您可以将其插入到属于同一行的一组语句周围。 在R中,从文件加载的函数主体通常还具有一个属性srcref,该属性

  • 特殊的简单随机数生成器

    线性同余生成器是最古老,最简单的方法之一: int seed = 123456789; int rand { seed = a * seed + c % m; return seed; } 您只需要几条基本的算术指

  • 如何在python请求中处理401(未授权)

    我认为这并不比这更丑陋: import requests from requests.auth import HTTPBasicAuth response = requests.get'http:your_url' if response.status_code == 401: response = requests.get'http:your_url', auth=HTTPBa

  • 检查多边形是否在多边形内

    对每对线(每个多边形中的一条)执行线相交测试。如果没有线对相交并且多边形A的线端点之一在多边形B内,则A完全在B内。 以上适用于任何类型的多边形。如果多边形是凸的,则可以跳过线相交测试,而只需测试A的所有线端点都在B内。 如果确实有必要,您可以使用a href="http:

  • Python:SocketServer意外关闭TCP连接

    这里的问题是,在中TCPHandler,“请求”实际上是从头到尾的完整连接。*您的处理程序被调用accept,从中返回时,套接字被关闭。 如果要在此之上构建一个请求-响应- 协议处理程序,该处理程序在单个套接字级请求上处理多个协议级请求,则您必须自己执行此操作(或使用更高级别的框架)。(类似的子类a href="https:docs.python.org2.7

  • 创建没有更多相交元素的组合

    我不得不添加另一个答案,因为另一个答案已经太久了。 如果您有以下限制条件: 1)您每周需要4人一组。 2)某一周中的每个小组都是不相交的,每个学生恰好是一个小组。 3)如果两个学生在同一个小组中,则他们将来不必再在同一个小组中。 如果您按以下方式构造图G: 1)每个学生都是一个节点。 2)如果两个学生以前从未在一起在一起,

  • 集合联合查找算法

    一旦建立了数据结构,您想对它执行什么查询?向我们展示您现有的代码。什么是T(x)?您说的是“数字组”,但样本数据显示了T1,T2等。请解释。 您是否已阅读以下内容:http : a href="http:en.wikipedia.orgwikiDisjoint-set_d

  • 在SLURM中使用sbatch命令时如何导入本地python模块

    当Slurm将提交脚本复制到计算节点上的特定位置以运行它时,您的Python脚本将找不到提交目录中的模块。 但是Slurm正确设置了当前工作目录,因此您可以使用类似以下内容的方法将其显式添加到python路径: sys.path.appendos.getcwd 在脚本开头附近。

  • 用C语言编写的有效非递归泛洪算法?

    这是一些可以满足您需求的C ++代码。它使用队列,并且在插入队列中效率更高。 connectedRegionconst Point source, RegionType region, const Color target { Color src_color = color_ofsource, region; if region.countsource == 0

  • 关闭图形的所有子图的轴

    我同意@tcaswell的建议,您应该只使用已经使用的内容。将其用作功能的另一种选择是使用a href="http:docs.scipy.orgdocnumpy-1.10.1ref

  • 是否可以在C ++中实现无锁映射

    实际上,有一种方法,尽管我自己还没有实现,但是在无锁地图上有一篇论文,使用了著名C ++专家Andrei Alexandrescu的a href="http:erdani.compu

  • 是否有Python可以使用的GPS库?

    我发现了一个有趣的库,名为geopy。它可以计算两个GPS点之间的距离(它使用大圆距离和Vincenty距离方法)。最重要的是, geopy 可以进行地理编码(它可以从地址获取GPS坐标)。 我可以自己入侵其他功能(平均速度,最高点等)。

  • 为什么我的递归函数在R中这么慢?

    帕特里克·伯恩斯(Patrick Burns)在R Inferno中举例说明了一种使用local和进行R中记忆的方法-。实际上,这是斐波那契: fibonacci - local{ memo

  • 在Python中,如何从另一个未本地导入的文件中修补功能?

    修补时,顶级和本地导入这两种情况必须以不同的方式处理。您必须按照文档中或Ned Batchelder的本博文中的描述对模块中使用的对象

  • 有什么快速的矩阵求幂方法?

    您可以将矩阵分解为特征值和特征向量。然后你得到 M = V^-1 * D * V 其中V是特征向量矩阵,D是对角矩阵。要将其提高到第N次方,您将获得类似以下内容的信息: M^n = V^-1 * D * V * V^-1 * D * V * ... * V^-1 * D * V = V^-1 * D^n * V cod

  • 向python添加编码别名

    该encodings模块没有很好的文档说明,因此我将使用codecs,这是: import codecs def encaliasoldname, newname: old = codecs.lookupoldname new =

  • 查找数组中所有总和为指定值的整数对

    假设所需的总和= R 对数组排序 对于数组A(n)中的每个数字,请执行二进制搜索以找到数字A(x),以使A(n)+ A(x)= R

  • 使用标签将所选文本设置为粗体

    您只需要tag_add在函数内部: import Tkinter as tk def make_bold: aText.tag_add"bt", "sel.first", "sel.last" lord = tk.Tk aText = tk.Textlord, font="Georgia", "12" aText.grid aButton =

  • 在最接近给定点的圆上找到点的最佳方法

    用合适的“数学”语言,其中P是点,C是中心,R是半径: V = P - C; Answer = C + V |V| * R; | V | 是V的长度。 好的好的 double vX = pX - cX; double vY = pY - cY; double magV = sqrtvX*vX + vY*vY; d

  • 如何在排序的链表上应用二元搜索O(log n)?

    普通的单链接列表当然是不可能的。 素描证明:以检查单链表的最后一个节点,我们必须执行n-1操作的事实之后的“下一个”指针[证明是用归纳的,世界上只有一个参照k+1个节点,是在k日节点,并且需要执行以下操作]。对于某些输入,有必要检查最后一个节点(特别是,如果搜索到的元素等于或大于其值)。因此,对于某些输入,所需时间与成正比n。

  • 了解MultiIndex

    我自己想通了。 df = read_csv"dataWorkbook1.csv" df name team date score 0 John A 3912 100 1 John B 3912 99 2 Jane B 4912 102 3 Peter A 9912 103

  • Python中的邻接表和邻接矩阵

    假设: edges = ['a', 'b', 'a', 'b', 'a', 'c'] 这是矩阵的一些代码: from collections import defaultdict matrix = defaultdictint for edge in edges: matrix[edge] += 1 print m

  • 熊猫to_sql()更新数据库中的唯一值?

    在pandas中,没有方便的参数to_sql可以将非重复项附加到最终表中。考虑使用熊猫 总是 替换的临时临时表,然后运行最终追加查询以将临时表记录迁移到最终表,仅考虑使用该NOT EXISTS子句的唯一PK 。 engine = sqlalchemy.create_engine... df.to_sqln

  • 重叠字符串连接的高效算法

    其他大多数答案都集中在恒定因数优化上,但是也可以渐近地做得更好。看一下您的算法:它是O(N ^ 2)。这似乎是一个可以比此更快解决的问题! 考虑一下Knuth Morris Pratt。它跟踪到目前为止我们匹配的最大子字符串量。这意味着它知道 在S2末尾 已经匹配了多少S1 ,这