小编nin*_*cko的帖子

如何在PHP中查找字符串的所有子字符串

我需要转换表单的字符串

"a b c"
Run Code Online (Sandbox Code Playgroud)

到表格的数组

Array
(
    [0] => a
    [1] => a b
    [2] => a b c
    [3] => b
    [4] => b c
    [5] => c
)
Run Code Online (Sandbox Code Playgroud)

PHP是否提供将字符串转换为所有子字符串的本机函数?如果没有,那么获得所有子串的阻力最小的路径是什么?是否有一种直接的方法可能爆炸()字符串,并使用数组操作生成所有[有序]排列?

干杯!

php string substring

5
推荐指数
2
解决办法
5595
查看次数

在Python中展平字典的词典(2级深度)

我试图将我的大脑包裹起来,但它不够灵活.

在我的Python脚本中,我有一个列表字典的字典.(实际上它会更深一些,但这个级别不涉及这个问题.)我想把所有这些变成一个长列表,扔掉所有字典键.

因此我想改造

{1: {'a': [1, 2, 3], 'b': [0]},
 2: {'c': [4, 5, 1], 'd': [3, 8]}}
Run Code Online (Sandbox Code Playgroud)

[1, 2, 3, 0, 4, 5, 1, 3, 8]
Run Code Online (Sandbox Code Playgroud)

我可以设置map-reduce来迭代外部字典的项目,从每个子字典构建一个子列表,然后将所有子列表连接在一起.

但是对于大型数据集而言,这似乎效率低下,因为中间数据结构(子列表)将被丢弃.有没有办法一次性完成?

除此之外,我很乐意接受一个有效的两级实现......我的map-reduce生锈了!

更新: 对于那些感兴趣的人,下面是我最终使用的代码.

请注意,虽然我在上面询问了列表作为输出,但我真正需要的是一个排序列表; 即,展平的输出可以是可以排序的任何可迭代的.

def genSessions(d):
    """Given the ipDict, return an iterator that provides all the sessions,
    one by one, converted to tuples."""
    for uaDict in d.itervalues():
        for sessions in uaDict.itervalues():
            for session in sessions:
                yield tuple(session)
Run Code Online (Sandbox Code Playgroud)

...

# Flatten dict of dicts of lists of sessions into a …
Run Code Online (Sandbox Code Playgroud)

python dictionary mapreduce data-structures

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

用于查找已安装设备的驱动器号的批处理脚本

我正在尝试编写一个批处理脚本来定位特定安装的设备。我在 Windows 7 中。

我知道该设备将具有文件夹 drive:\custom 所以我想查看所有可能性以找到具有此路径的设备

这是我到目前为止所拥有的

    @echo off
   setLocal Enabledelayedexpansion


for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  if exist %%d:\custom (
     ECHO Device Found : %%d
  )
)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,它认为它存在于每个驱动器号..所以我看到每个驱动器号的“设备找到”。这是为什么?我这样做是错误的吗?如何在根目录中找到包含“custom”文件夹的驱动器号?

谢谢,
斯蒂芬妮

windows batch-file

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

获取我写在Blackberry或其他移动平台上的python程序?

到目前为止,该程序仅在我的PC上运行.

我一直在搜索StackOverflow,我发现了RhoMobile的Rhodes,它允许你在Ruby中编写应用程序并在多个移动平台上运行它:iPhone,Symbian,Android,BlackBerry和Windows Mobile.Python有什么类似的东西吗?如果不是我该怎么做呢?

提前致谢!

python cross-platform blackberry

5
推荐指数
1
解决办法
2076
查看次数

最小乘法与集合覆盖问题

我有一组I = {P1,P2,...,Pm}和n个有限的I子集,由R1,R2,...,Rn表示如下:

R1 = {P1,P2}

R2 = {P2,P4}

R3 = {P2,P3,P4}

R4 = {P1,P2,P4}

....

其中Pi表示整数.

对于每个Ri,我想计算其所有元素的乘积.我的目标是通过在Ri(i = 1,2,...,n)之间共享一些公共部分来尽可能少地使用复用和除法.

例如,如果我可以先计算P2*P4,那么这个结果可用于计算R3和R4的所有元素的乘积.

请注意,也允许分割.例如,我可以首先计算A = P1*P2*P3*P4,然后使用A/P1计算R3的所有元素的乘积,并使用A/P3作为R4.

如果我想使用最小乘法和除法来计算I的每个子集的所有乘积,它是否是一个集合覆盖问题?NP完成?顺便说一句,你能给出一个整数线性程序公式来描述它就像这里一样.

任何建议将受到高度赞赏!

社区编辑:增加假设:

  • 允许划分,与乘法相同的成本
  • 给定集合中没有重复的元素.例如R5 = {P1, P1, P1, P2}是不允许的

algorithm set np-complete linear-programming set-cover

5
推荐指数
1
解决办法
226
查看次数

字符串中的python反向标记

我有以下字符串:

apple.orange.red.green.yellow
Run Code Online (Sandbox Code Playgroud)

我该如何扭转它以获得以下内容:

yellow.green.red.orange.apple
Run Code Online (Sandbox Code Playgroud)

python

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

"衍生字段"/"来自计算的类属性"的Python范例

我有一个课程,比方说,计算一个人的保险风险,并在计算过程中计算一些其他变量.我稍后需要访问风险和其他变量.

class InsuranceRiskModel:

    self.risk = None
    self.other_var = None
    ...

    def get_risk():
        # do a bunch of calculations, 
        # which in the meantime fills out a bunch of other vars
        self.other_var = 5
        self.risk = 6
        return self.risk

    def get_other_var():
        # risk hasn't been calculated
        if not self.risk:
            raise NotYetCalculatedError("Not yet calculated!")
        return self.other_var
Run Code Online (Sandbox Code Playgroud)

现在我做的其他一些功能:

r = InsuranceRiskModel(person)
risk = r.get_risk()
other_var = r.get_other_var()
Run Code Online (Sandbox Code Playgroud)

这是我想要的那种程序的合法结构吗?只是抛出一个尚未运行的计算异常,以防止获取虚假值?

python oop attributes properties class-attributes

4
推荐指数
1
解决办法
544
查看次数

了解合并排序优化:避免复制

我在算法书中有下面的合并排序程序,提到主要问题是合并两个排序列表需要线性额外内存,并且在整个算法中复制到临时数组并返回的额外工作具有减慢的效果大大降低了那种.通过在递归的交替级别明智地切换"a"和"tmp_array"的角色,可以避免这种复制.

我的问题是作者的意思是"通过在递归的交替级别明智地切换a和tmp_array的角色可以避免复制"以及如何在下面的代码中实现?请求展示我们如何实现这一目标的示例?

void mergesort( input_type a[], unsigned int n ) {

    input_type *tmp_array;
    tmp_array = (input_type *) malloc( (n+1) * sizeof (input_type) );
    m_sort( a, tmp_array, 1, n );
    free( tmp_array );
}

void m_sort( input_type a[], input_type tmp_array[ ], int left, int right ) {

    int center;
    if( left < right ) {

    center = (left + right) / 2;
    m_sort( a, tmp_array, left, center );
    m_sort( a, tmp_array, center+1, right );
    merge( a, tmp_array, left, center+1, right ); …
Run Code Online (Sandbox Code Playgroud)

algorithm

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

如何编写所有2 ^ N布尔条件的if语句(python)

我有一个函数需要根据输入的查询实例执行查询..但随着条件的增加,我列出所有这些都变得乏味.例如:假设我最初有两个条件:

if (cond_1 == True and cond_2 == False):
    do something
elif  cond_1 == True and cond_2 == True:
    do something else
elif cond_1 == False and cond_2 == True:
    do this
Run Code Online (Sandbox Code Playgroud)

....

所以我猜如果条件采用二进制值,那么我必须写2 ^ n个语句:(

所以现在我有3个条件变量(8个语句)..我担心这个数字将来会增加.这是检查这些条件的更好方法吗?

python algorithm

4
推荐指数
3
解决办法
1542
查看次数

javascript中一串一位数字的总和?

我正在尝试编写一个脚本,添加字符串的左侧并在右侧验证它.

例如:

var left = "12345"
var right = "34567"
Run Code Online (Sandbox Code Playgroud)

我需要做一些加上1 + 2 + 3 + 4 + 5的求和函数,检查它是否等于3 + 4 + 5 + 6 + 7.

我只是不知道如何做到这一点.

我想我需要使用for循环遍历数字,例如for(var i = 0,length = left.length; i <length; i ++)

但我不确定如何从那里添加每个号码.

编辑 var实际上是从字段中提取的.所以var left = document.blah.blah

javascript

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