编程面试题

  • 在Django视图中结合modelformset和inlineformset

    我不确定这是否是一个好的解决方案,但这是我能想到的唯一可行的解​​决方案。 我会创建一个词典列表。每个Dictionary将具有一个baseForm键和一个inline_forms键,该键将保存您的B类表单,而inline_forms键将保存您的A类inline_formset。 在您的视图代码中,遍历列表并相应地打印表单。为每个表单提交按钮生成一个不同的值。例如,第一种形式etch ..的submit_1。

  • 5个排序数组的中位数

    (这是您对两个数组的想法的概括。) 如果您先查看五个数组的五个中位数,则显然总中位数必须介于五个中位数中的最小和最大之间。 证明是这样的:如果a是中位数的最小值,b是中位数的最大值,则每个数组的元素小于a的一半小于元素,而元素大于b的元素小于一半。结果如下。 因此,在包含a的数组中,丢弃小于a的数字;在包含b的数组中,丢弃大于b的数字…但仅丢弃两个数组中相同数量的元素。 也就

  • 为什么DFS和BFS的时间复杂度为O(V + E)

    你的钱 v1 + incident edges + v2 + incident edges + .... + vn + incident edges 可以改写成 v1 + v2 + ... + vn + [incident_edges v1 + incident_edges v2 + ... + incident_e

  • suds.TypeNotFound:找不到类型:'MerchantCode'

    您确定您的DirectConnect.test.WSDL是正确的吗?好像不是。请在这里发布。 添加: 我知道了 请看一下结果。这是工作代码(运行它的chmod + x main.py)。 sudstestmike-imac:sudstest mike$ .mai

  • 在排序数组中找到大于目标的第一个元素

    解决此问题的一种方法是考虑对数组的转换版本执行二进制搜索,其中已通过应用函数修改了数组 fx = 1 if x target 0 else 现在,目标是找到此函数取值1的第一位。我们可以使用二进制搜索来做到这一点,如下所示: int low = 0, high = numElems; numElems is

  • 用Python存储简单数据

    该文件必须可读吗?如果没有的话,货架真的很容易使用。

  • 为什么有人会使用set而不是unordered_set?

    对于想要迭代集合项的人而言,顺序很重要。

  • 在Python中使用滚动条显示大图

    如果您想要一个Scrollable图像小部件,那么最好的方法是创建一个Scrollable Image类,该类将对代码进行排列并使其看起来更好。因此,我为相同的对象创建了一个类,并添加了绑定,MouseWheel以便可以滚动鼠标以更方便地查看图像。 这是代码示例 import tkinter class

  • 缓存无效-是否有通用解决方案?

    您正在谈论的是生命周期依赖链,一件事依赖于另一件事,可以在其控制范围之外进行修改。 如果你有一个幂函数,从a,b到c那里,如果a和b相同,则c是相同的,但检查的成本b是高的,那么你可以: 接受您有时会使用过时的信息

  • 查找给定范围内所有数字的异或

    这是一个非常聪明的解决方案-它利用了一个事实,即正在运行的XOR中存在一种结果模式。该f函数根据[0,a]计算XOR总计。查看下表中的4位数字: 0000 - 0 [a] 0001 - 1 [1] 0010 - 3 [a+1] 0011 - 0 [0] 0100 - 4 [a] 0101 - 1 [1] 0110 -

  • 如何将这两条3D线与Python matplotlib中的曲面连接在一起

    您将要找到将第一个轨道的第i个点连接到第二个轨道的第i个点的直线的方程式。然后,您可以使用i和z作为参数,在所有可能的值上变化以找到X和Y。 例: import numpy as np import matplotlib import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D Z1 = 8.0 Z2 = 9.

  • 给定一个数字,找到下一个更大的数字,该数字与原始数字具有完全相同的数字集

    您可以这样输入On(n位数是): 从右边开始,找到第一个数字对,以使左边的数字小于右边的数字。让我们用“ digit-x”来指代左数字。在数字-x的右边找到大于数字- x的最小数字,并将其放在数字-x的左侧。最后,将其余数字按升序排序-由于它们已经按 降序 排列,因此您要做的就是将它们反转 (保存digit-x,可以将其放置在中的正

  • 一定时间后停止线程

    如果 您没有阻止,这将起作用。 如果您打算进行睡眠,那么绝对必须使用该事件来进行睡眠。如果您利用事件使睡眠,如果有人告诉您在“睡眠”时停止,它将醒来。如果您使用time.sleep线程,它将仅 在 唤醒后停止。 import threading import time duration = 2

  • 美国电话号码验证

    在我看来,您正在为此付出更多的努力。考虑: 如果您的目的是防止输入错误的电话号码,那么只需简单地检查一下,您就可以捕获90%以上的电话号码。 如果您的目的是试图强迫用户提供一个有效的数字,无论他们是否愿意提供该信息,那么即使您能够访问100%准确,最新,第二个电信数据库可以验证输入的确切号码当前有效,您仍然无法保证他们给您的号码是您自己的。一次简单的检查将挫败大多数输入假数字的人,但是那些愿意尝试两次或三次以上

  • 如何在图的中间绘制轴?

    一种方法是使用刺: import math import numpy as np import matplotlib.pyplot as plt def sigmoidx: a = [] for item in x: a.append11+math.exp-

  • DirectoryInfo.EnumerateFiles(…)导致UnauthorizedAccessException(和其他异常)

    为了解决此问题,我创建了一个替换文件系统枚举器。尽管它可能并不完美,但它的执行速度相当快,并且可以捕获我遇到的两个异常。它将找到与传递给它的搜索模式匹配的任何目录或文件。 This code is public domain using System; using System.Collections; using System.Collections.Generic; using System.IO; u

  • 非偏向返回n个随机正数(> = 0)的列表,这样它们的和== total_sum

    好吧,假设要求是生成长度为N的随机向量,该向量 均匀地分布 在允许的空间内,我们将解决该问题,具体如下: 给定 所需的长度L 所需的总和S 每个标量值的允许值范围[0,B], 生成长度为N的随机向量V,以使随机变量V在其允许空间内均匀分布。 我们

  • 如何在Mac中使用Python控制鼠标?

    我浏览了Synergy的源代码以查找生成鼠标事件的调用: #include ApplicationServicesApplicationServices.h int toint x, int y { CGPoint newloc; CGEventRef eventRef; newloc.x = x; newloc.y = y; eventRef =

  • 按字典顺序打印所有排列

    在C中 在geeksforgeeks上有一个非常简单的算法描述(包括实现): 给定一个字符串,按排序顺序打印它的所有排列。例如,如果输入字符串为“ ABC”,则输出应为“ ABC,ACB,BAC,BCA,CAB,C

  • 如何摆脱python中字符串中的b前缀?

    您需要解码所需bytes的字符串: b = b'1234' printb.decode'utf-8' # '1234'

  • 在已知的整数键集上查找

    保持键排序,并使用M树检索任何键。 一个M树的每个节点有M个条目,而不是2个。这将极大地提高性能。使用高速缓存行大小作为节点大小的基础,因此为64字节。您可以以此大小存储16个32位值。 因为您有1000个值,所以3个级别将足以检索正确的键(而二叉树则为10个级别)。 另一个想法是将您的密钥哈希到一个小的哈希表中,例如12位的哈希表(4K条目),并通过一条简单的链解决潜在的冲突。您很可能会在一

  • list()比列表理解使用更多的内存

    我认为您正在看到过度分配模式,这是来自源的示例: * This over-alloca

  • 将十六进制转换为十进制

    #include iostream #include iomanip int main { int x, y; std::stringstream stream; std::cin x; stream x; stream std::hex y; std::cout

  • 此递归如何工作?

    该函数运行带有 回溯 功能的相当简单的 蛮力搜索 :在每个调用级别,它都尝试将数字加到该数字上,并查看是否从结果数字开始将您带到目标。如果是,则返回结果;否则,返

  • 熊猫to_csv输出引用问题

    您可以通过quoting=csv.QUOTE_NONE,例如: df.to_csv'foo.txt',index=False,header=False !cat foo.txt 123,"this is ""out text""" import csv df.to_csv'foo

  • 如何找到给定文本中给定单词的所有排列?

    从算法上看,这可能不是最有效的解决方案,但是从类设计的角度来看,这是干净的。该解决方案采用比较“排序的”给定单词的方法。 如果一个单词包含相同数字的相同字母,我们可以说它是另一个单词的排列。这意味着您可以将单词从a转换String为a MapCharacter,Integer。此类转换将具有复杂度O(n),其中n是的长度Stringcod

  • Matplotlib对数刻度刻度标签数字格式

    当然,只需更改格式化程序。 例如,如果我们有这样的情节: import matplotlib.pyplot as plt fig, ax = plt.subplots ax.axis[1, 10000, 1, 100000] ax.loglog plt.show img alt="在此处输入图片说明" src="https:i.st

  • 学习Ruby中的插入排序

    您正在超出数组的范围。给出的示例假定了1索引数组,但是ruby中的数组是0索引数组。第一行应该是 for j in 1...num.length

  • 如何在不输入“ python…”的情况下运行python脚本

    您必须添加shebang: #!usrbinenv python 然后使脚本可执行: chmod +x foo 然后,您可以像运行其他任何可执行文件一样运行它: .foo 还有Homer6的注释:如果您是从Windows编辑文

  • 将纪元时间转换为“实际”日期/时间

    请注意daysInMonth函数中的leap年。 如果您希望获得非常高的性能,则可以预先计算该对,以便一步一步达到月+年,然后计算日小时分钟秒。 一个好的解决方案是a href="http:www.google.comcodesearchp?hl=ensa=Ncd=2ct=rc#4kyKlxPG9x4currentl4minix-03-03-10srclib

  • 用python接收和发送电子邮件

    这是一个非常简单的示例: import smtplib server = 'mail.server.com' user = '' password = '' recipients = ['user@mail.com', 'other@mail.com'] sender = 'you@mail.com' message = 'Hello World' session = smtplib.SMTPserver

  • 如何以最小化每个分区的总和的方式对整数数组进行分区?

    使用二进制搜索。 设最大和范围为0到sum(array)。因此,中= =(范围 2)。看看是否可以通过k在O(n)时间中将其分成几组来实现。如果是,则选择较低的范围,如果不是,则选择较高的范围。 这将为您提供O(n log n)的结果。 PS:如果您在编写代码时遇到任何问题,我可以帮助您,但建议您先尝试一下。 编辑: 根据

  • 使用熊猫获取开始日期和结束日期之间的工作日

    使用BDay得到工作日的范围内。 from pandas.tseries.offsets import * In [185]: s Out[185]: 2011-01-01 -0.011629 2011-01-02 -0.089666 2011-01-03 -1.314430 2011-01-04 -1.867307 2011-01-05 0.779609

  • Java中两个字符串的交集

    使用HashSetCharacter: HashSetCharacter h1 = new HashSetCharacter, h2 = new HashSetCharacter; forint i = 0; i s1.length; i++

  • Python中的主要侦听器?

    不幸的是,做到这一点并不容易。如果您要制作某种文本用户界面,则可能需要研究curses。如果您想要像通常在终端中那样显示内容,但又想要这样的输入,那么您将不得不使用termioscode

  • 在哪里可以找到Python的hash()函数的源代码或算法?

    如果您下载Python的源代码,则可以肯定找到它!但是请记住,哈希函数对每种对象的实现方式不同。 例如,您可以在函数中找到unicode哈希Objectsunicodeobject.c函数unicode_hash。您可能需要多看一些才能找到字符串哈希函数。找到定义您感兴趣的对象的结构,然后在该字段中tp_hash,找到用于计算该对象的哈希码的函数。

  • 将n个可变高度图像拟合到3个(相似长度)列布局中

    多少张图片? 如果限制最大页面尺寸,并具有最小图片高度的值,则可以计算每页的最大图像数。评估任何解决方案时都需要此。 我认为您提供的链接上有27张图片。 下面的代码使用了Robin Green前面提到的first_fit算法,但随后通过贪婪的交换对其进行了改进。 交换例程找到距离平均列高最远的列,然后系统地查找其图片之一与另一列中的第一张图片之间的交换,以最大程度地减少与平均

  • GroupBy列和筛选器行在Pyspark中具有最大值

    您可以在不udf使用的情况下执行此操作Window。 考虑以下示例: import pyspark.sql.functions as f data = [ 'a', 5, 'a', 8, 'a', 7, 'b', 1, 'b', 3 ] df = sqlCtx.createDataFr

  • 数组的所有可能组合

    编辑: 正如FearUs指出的那样,更好的解决方案是使用Guava的Sets.powerset(Set set)。 stro

  • Python,将列表强制为固定大小

    您可能要使用具有maxlen构造函数参数的collections.deque对象: l = collections.dequemaxlen=5 l.append'apple' l.a