小编Nik*_* B.的帖子

从字符串中解析元组?

比方说,我有一个与元组相同形式的字符串"(1,2,3,4,5)".将其转换为实际元组的最简单方法是什么?我想做的一个例子是:

tup_string = "(1,2,3,4,5)"
tup = make_tuple(tup_string)
Run Code Online (Sandbox Code Playgroud)

只是tuple()在字符串上运行会使整个事件成为一个大元组,而我想要做的就是把字符串理解为一个元组.我知道我可以使用正则表达式,但我希望有一种成本更低的方式.想法?

python python-2.7

51
推荐指数
2
解决办法
4万
查看次数

如何计算具有特定属性的大A和B之间的整数?

在编程竞赛中,以下模式出现在很多任务中:

给定数字A和B很大(可能是20个十进制数字或更多),确定具有特定属性P的A≤X≤B的整数X

SPOJ有许多这样的任务用于练习.

有趣的属性的例子包括:

  • "X的数字总和是60"
  • "X仅包含数字4和7"
  • "X是回文",这意味着X的十进制表示等于其反向(例如,X = 1234321)

我知道如果我们将f(Y)定义为这样的整数X≤Y,那么我们问题的答案就是f(B) - f(A - 1).减少的问题是如何有效地计算函数f.在某些情况下,我们可以利用某些数学属性来提出公式,但通常属性更复杂,我们在比赛中没有足够的时间.

在很多情况下是否有更通用的方法?它是否也可以用于枚举具有给定属性的数字或计算它们上的一些聚合?

其变体是找到具有给定属性的第k个数,当然可以通过使用二进制搜索和计数函数来求解.

algorithm dynamic-programming

51
推荐指数
1
解决办法
1万
查看次数

动态地将基类混合到Python中的实例

是否可以在运行时向对象实例(不是类!)添加基类?关于如何Object#extend在Ruby中工作的一些方面:

class Gentleman(object):
  def introduce_self(self):
    return "Hello, my name is %s" % self.name

class Person(object):
  def __init__(self, name):
    self.name = name

p = Person("John")
# how to implement this method?
extend(p, Gentleman)
p.introduce_self() # => "Hello, my name is John"
Run Code Online (Sandbox Code Playgroud)

python oop mixins

33
推荐指数
3
解决办法
8338
查看次数

在列表中找到具有"小"额外空间的k个非重复元素

最初的问题陈述是这样的:

给定一个32位无符号整数数组,其中每个数字除了其中三个(恰好只出现一次)之外恰好出现两次,使用O(1)额外空格在O(n)时间内找到这三个数字.输入数组是只读的.如果有k个例外而不是3个怎么办?

如果由于输入限制(阵列最多可以包含2 33个条目)而接受非常高的常数因子,则很容易在?(1)时间和?(1)空间上解决这个问题:

for i in lst:
    if sum(1 for j in lst if i == j) == 1:
        print i
Run Code Online (Sandbox Code Playgroud)

因此,为了这个问题,让我们放弃比特长度的限制,并专注于数字可以达到m比特的更普遍的问题.

推广k = 2的算法,我想到的是以下内容:

  1. 对具有最低有效位的那些数字1和具有0单独的那些数字进行异或.如果对于两个分区,结果值不为零,我们知道我们已将非重复数字划分为两个组,每个组至少有一个成员
  2. 对于每个组,尝试通过检查第二个最低有效位等进一步对其进行分区

不过,有一个特殊情况需要考虑.如果在对一个组进行分区后,其中一个组的XOR值都为零,我们不知道其中一个结果子组是否为空.在这种情况下,我的算法只是将该位丢弃并继续下一个,这是不正确的,例如它输入失败[0,1,2,3,4,5,6].

现在我的想法是不仅要计算元素的XOR,还要计算应用某个函数后的值的异或(我在f(x) = 3x + 1这里选择).有关此附加检查的反例,请参阅下面的Evgeny的答案.

现在虽然以下算法对于k> = 7是不正确的,但我仍然在这里包含实现以给你一个想法:

def xor(seq):
  return reduce(lambda x, y: x ^ y, seq, 0)

def compute_xors(ary, mask, bits):
  a = xor(i for i in ary if i …
Run Code Online (Sandbox Code Playgroud)

algorithm xor time-complexity space-complexity

26
推荐指数
3
解决办法
5011
查看次数

在rails中,默认的getter和setter会是什么样子?

我知道我可以编写attr_accessor:tag_list来为Rails中的对象创建一个虚拟属性tag_list.这允许在对象的表单中存在tag_list属性.

如果我使用attr_accessor:tag_list,我可以在模型中对tag_list执行操作以从表单中提取和操作数据.

我想知道的是,而不是写attr_accessor,我怎么会写一个getter和setter,将完全复制的attr_accessor默认功能.例如:

def tag_list
    #what goes here
end
Run Code Online (Sandbox Code Playgroud)

仅供参考我尝试过

 def tag_list
     @tag_list
 end
Run Code Online (Sandbox Code Playgroud)

这不起作用.

ruby ruby-on-rails virtual-attribute attr-accessor ruby-on-rails-3

24
推荐指数
2
解决办法
3万
查看次数

Ruby可以轻松搜索散列数组中的键值对

假设我有这个哈希数组:

[
{"href"=>"https://company.campfirenow.com", "name"=>"Company", "id"=>123456789, "product"=>"campfire"},
{"href"=>"https://basecamp.com/123456789/api/v1", "name"=>"Company", "id"=>123456789, "product"=>"bcx"}, 
{"href"=>"https://company.highrisehq.com", "name"=>"Company", "id"=>123456789, "product"=>"highrise"}
]
Run Code Online (Sandbox Code Playgroud)

如何解析哈希的" href "值,其中"product"=>"bcx"

有没有简单的方法在Ruby中执行此操作?

ruby arrays

24
推荐指数
1
解决办法
3万
查看次数

如何在Python 2.7中实现具有超时的锁定

有没有办法在Python中为多线程目的实现锁定,其acquire方法可以有任意超时?到目前为止,我发现的唯一可行的解​​决方案是使用轮询

  • 我发现不优雅和低效
  • 不保留锁的有限等待/进度保证作为临界区问题的解决方案

有没有更好的方法来实现这个?

python multithreading synchronization

22
推荐指数
2
解决办法
1万
查看次数

为什么RegCloseKey存在(当CloseHandle似乎执行相同的功能时)?

我正在查看前DuplicateHandle几天的文档,并注意到DuplicateHandle能够复制注册表键句柄HKEY.在SysInternals书中读到这一点似乎表明注册表键句柄是普通的内核对象,类似于文件句柄.但是CloseHandle无法关闭HKEYs,RegCloseKey也无法关闭其他种类的内核对象.

为什么区别?

c c++ windows winapi

17
推荐指数
1
解决办法
881
查看次数

这种类型的一般结构是什么?

虽然早先破解了一些东西,但我创建了以下代码:

newtype Callback a = Callback { unCallback :: a -> IO (Callback a) }

liftCallback :: (a -> IO ()) -> Callback a
liftCallback f = let cb = Callback $ \x -> (f x >> return cb) in cb

runCallback :: Callback a -> IO (a -> IO ())
runCallback cb =
    do ref <- newIORef cb
       return $ \x -> readIORef ref >>= ($ x) . unCallback >>= writeIORef ref
Run Code Online (Sandbox Code Playgroud)

Callback a表示处理某些数据并返回应该用于下一个通知的新回调的函数.一个回调基本上可以取代自己,可以这么说.liftCallback只是将一个普通函数提升到我的类型,同时runCallback使用一个 …

haskell types higher-kinded-types

16
推荐指数
3
解决办法
625
查看次数

从数组ruby rails中的哈希值中检索特定值

Noob在这里提问!

我有一个带有哈希的数组,如下所示:

arr = [{id: 1, name: "Pedro"},{id: 2, name: "Pablo"}]
Run Code Online (Sandbox Code Playgroud)

并希望有这样的数组:

ids = [1,2]
Run Code Online (Sandbox Code Playgroud)

我调查使用地图或选择这样:

ids = arr.each.select{|k,v| "id"==k}
Run Code Online (Sandbox Code Playgroud)

但我无法弄明白.

ruby arrays hash ruby-on-rails

15
推荐指数
1
解决办法
1万
查看次数