小编nha*_*tdh的帖子

Python字符串模式识别/压缩

我可以做基本的正则表达式,但这有点不同,即我不知道模式是什么.

例如,我有一个类似字符串的列表:

lst = ['asometxt0moretxt', 'bsometxt1moretxt', 'aasometxt10moretxt', 'zzsometxt999moretxt']
Run Code Online (Sandbox Code Playgroud)

在这种情况下,常见模式是两段常见文本:'sometxt'并且'moretxt',由长度可变的其他内容开始和分隔.

公共字符串和变量字符串当然可以在任何顺序和任何数量的场合发生.

将字符串列表压缩/压缩为公共部分和个别变体的好方法是什么?

示例输出可能是:

c = ['sometxt', 'moretxt']

v = [('a','0'), ('b','1'), ('aa','10'), ('zz','999')]
Run Code Online (Sandbox Code Playgroud)

python compression string pattern-recognition

7
推荐指数
2
解决办法
5246
查看次数

给出一个链接的数字列表.交换每2个相邻的链接

给出一个链接的数字列表.交换每2个相邻的链接.例如,如果给您的链接列表是:

a->b->c->d->e->f 
Run Code Online (Sandbox Code Playgroud)

预期产量:

b->a->d->c->f->e
Run Code Online (Sandbox Code Playgroud)

必须交换每2个备用链接.

我在这里写了一个解决方案.你能给我一些其他解决方案吗?你能评论一下我的解决方案并帮助我更好地写出来吗?

void SwapAdjacentNodes (Node head)
{
    if (head == null) return; 

    if (head.next == null) return; 
    Node curr = head;
    Node next = curr.Next;
    Node temp = next.Next;

    while (true)
    {
        temp = next.Next;
        next.Next = curr;
        curr.Next = temp;

        if  (curr.Next != null)
            curr = curr.Next;
        else
            break;
        if (curr.Next.Next!=null)
            next = curr.Next.Next;
        else
            break;
    }   
}
Run Code Online (Sandbox Code Playgroud)

algorithm linked-list

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

Regexp模式可选字符

我想匹配像19740103-0379或197401030379这样的字符串,即短划线是可选的.如何使用regexp完成此操作?

regex

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

这种简单的改组算法是否会返回一张随机混乱的扑克牌?

您有52张卡片的列表,其中该列表中的卡片位置不会移动.您有第二张卡位置列表.首先,位置列表与第一个列表相同.

  1. 迭代第一个列表.

  2. 对于第一个列表中的每张卡,生成一个从1到52的数字.将卡在第二个列表中的位置与卡在该位置交换.

存在偏见吗?为什么?

更新:从来没有人相信纯数学或逻辑,我决定自己实现这一点.以下是第5张卡(位置方式)从1到52的每个数字的百分比概率:

1. 1.9346%
2. 1.9011%
3. 1.8513%
4. 1.8634%
5. 1.8561%
6. 1.8382%
7. 2.5086%
8. 2.4528%
9. 2.4552%
10. 2.3772%
11. 2.3658%
12. 2.3264%
13. 2.3375%
14. 2.287%
15. 2.2627%
16. 2.2151%
17. 2.1846%
18. 2.1776%
19. 2.1441%
20. 2.1103%
21. 2.084%
22. 2.0505%
23. 2.0441%
24. 2.0201%
25. 1.972%
26. 1.9568%
27. 1.9477%
28. 1.9429%
29. 1.9094%
30. 1.8714%
31. 1.8463%
32. 1.8253%
33. 1.8308%
34. 1.8005%
35. 1.7633%
36. 1.7634%
37. 1.769%
38. …
Run Code Online (Sandbox Code Playgroud)

random algorithm shuffle

7
推荐指数
1
解决办法
1555
查看次数

被一个简单的正则表达困扰

我试图看看字符串是否s包含正则表达式中的任何符号.下面的正则表达式在rubular上运行正常.

s = "asd#d"
s =~ /[~!@#$%^&*()]+/
Run Code Online (Sandbox Code Playgroud)

但是在Ruby 1.9.2中,它给出了以下错误消息:

syntax error, unexpected ']', expecting tCOLON2 or '[' or '.'
s = "asd#d"; s =~ /[~!@#$%^&*()]/
Run Code Online (Sandbox Code Playgroud)

怎么了?

ruby regex

7
推荐指数
1
解决办法
208
查看次数

如何同步访问javascript对象的私有成员

我有一个Javascript对象创建如下:

var ccStatTracker = (function (){
  ccmap:{
    "1":["1","2","3","4"],
    "2":["4","5"];       
  }

  return {
    modifyCCMap: function (){
      // Code which takes following actions: 
      // - adds/removes keys.
      // - modifies arrays stored as values against the keys in the map.  
    }  
  }
)();
Run Code Online (Sandbox Code Playgroud)

我有一个DHTMLXGrid组件,它以行和列的形式显示网格.当我编辑网格中的任何单元格时,会调用"onEditCell"事件.现在,我想从附加到"onEditCell"事件的事件处理函数调用ccStatTracker.modifyCCMap().当我继续修改单元格时,这个事件将被异步调用,这将调用一个函数"modifyCCMap",它将修改我的Javascript对象的私有成员"CCMap".因此,两次调用看到的CCMap的最新状态可能不同吗?那么处理这个问题的最佳方法是什么?Javascript和Java中有"同步"的东西吗?

请帮助我,因为它将决定我们为实现这一目标而采取的方法.

javascript synchronized members

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

检测未知来源的时间段

如何检测无限序列中的重复数字?我试过Floyd&Brent检测算法,但什么都没有......我有一个生成器,产生0到9(含)的数字,我必须认识到它的一个时期.

示例测试用例:

import itertools

# of course this is a fake one just to offer an example
def source():
    return itertools.cycle((1, 0, 1, 4, 8, 2, 1, 3, 3, 1))

>>> gen = source()
>>> period(gen)
(1, 0, 1, 4, 8, 2, 1, 3, 3, 1)
Run Code Online (Sandbox Code Playgroud)

python algorithm math floyd-cycle-finding

7
推荐指数
1
解决办法
4844
查看次数

如何通过另一个线程停止线程?

我在Java中遇到了一些线程,我有三个线程 - thread1,thread2和thread3.当它开始时,它们正在做一些任务,我想通过thread1停止这两个线程.我把thread1用于sleep(500),然后我停止两个线程,但两个线程的进程仍在运行.你知道怎么做吗?

java multithreading

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

使用单词边界将变量传递给RegExp

我必须传递给变量的RegExp值并指向一个单词边界.如果它包含变量值,我有一个要检查的字符串.我不知道如何将regexp作为变量值和单词边界属性传递给我.

所以像这样:

var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
Run Code Online (Sandbox Code Playgroud)

我尝试了一些方法来解决问题,但仍然不能这样做:(

javascript regex

7
推荐指数
2
解决办法
1156
查看次数

捕获perl中两个不同正则表达式的匹配内容

我正在使用带有两个单独正则表达式的while循环

while(($string1=~m/(\d+)/igs)==($string2=~m/([^^]*?)\n+/igs)) {}
Run Code Online (Sandbox Code Playgroud)

存储我用过的$ string1的匹配模式的值$temp1=$1,

如何存储匹配的模式$string2.请给出一些建议.

regex perl

7
推荐指数
1
解决办法
514
查看次数