小编ant*_*ntz的帖子

如何在Java中对字符串的ArrayList进行排序?

我有随机String投入的ArrayList.

private ArrayList<String> teamsName = new ArrayList<String>();
String[] helper; 
Run Code Online (Sandbox Code Playgroud)

例如:

teamsName.add(helper[0]) where helper[0] = "dragon";   
teamsName.add(helper[1]) where helper[1] = "zebra";   
teamsName.add(helper[2]) where helper[2] = "tigers" // and so forth up to about 150 strings.
Run Code Online (Sandbox Code Playgroud)

鉴于您无法控制输入(即进入ArrayList的字符串是随机的;斑马或任何顺序的龙),一旦ArrayList填充了输入,我如何按字母顺序排序,排除第一个?

teamsName[0]很好; 排序teamsName[1 to teamsName.size]按字母顺序排列.

java sorting arraylist

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

了解Knuth-Morris-Pratt算法

谁可以给我解释一下这个?我一直在阅读它,但仍然很难遵循.

文字:ababdbaababa
模式:ababa

ababa的表是-1 0 0 1 2.

我想我理解表是如何构建的,但是,我不明白一旦发生不匹配,如何转换.好像我们甚至在转移时都不使用桌子?

我们什么时候用这张桌子?

string algorithm pattern-matching

9
推荐指数
3
解决办法
7932
查看次数

使用强连接组件Algo检查顶点是否可达

我想看看一个给定的顶点,比如V0,是否可以通过图G中的所有其他顶点到达.
我知道我可以遍历图中的每个顶点并执行BFS/DFS以查看V0是否可达.
但是,这似乎效率很低.

我想知道我是否在图上做了SCC算法,如果v0是所有scc的一部分,那么我可以安全地得出结论v0可以通过所有顶点到达?这将是很好的,因为SCC的成本仅为与Tarjan的O(V + E)并且检查v0是否是scc的一部分也将花费线性时间.

我认为这是有道理的,因为SCC意味着顶点是可达的.对这个逻辑的任何确认?

或任何有效的方法?

algorithm graph

8
推荐指数
1
解决办法
1712
查看次数

使用强连接组件Algo作为周期检测

我知道如果一组顶点是强连通组件的一部分,那么组件中的所有顶点都可以相互到达; 一个循环.

现在,我想使用这个事实,并声称如果图G =(V,E)有一个周期,那么该周期必须在scc内.

换句话说,所有周期都必须是scc的一部分(我的主张).

我想不出我的主张的任何反例,所以我想知道图中是否有任何不属于scc的周期.
或者是我的主张,对吗?

algorithm graph

6
推荐指数
2
解决办法
2434
查看次数

带C库的Python

我一直在寻找python的开源代码,其中许多都在src中有.c和.h文件的目录.

例如,有一个名为protocol的目录,它有.c和.h文件(这些.c文件有静态PyObject*).

如果我想导入这个目录,以便我可以使用这些功能,需要什么(或者我如何使用.py文件中的这些.c文件)?

我知道你需要init .py来导入一个目录,所以我这样做是为了导入但不确定如何从.c文件访问对象

例如,他们有一个python代码 arp = protocol.arp(shw, thw, sp, tp, constants.arp.ARPOP_REQUEST)

但是我不理解从.py到.c的转换,因为以下文件(protocol/arp.c)没有名为arp的类(它有静态PyObject*ARPObject_new(PyTypeObject*类型,PyObject*args,PyObject*kwds).有人向我解释这个转变?

#include "Python.h"
#include "structmember.h"
#define PROTOCOL_MODULE
#include "protocolmodule.h"

PyProtocol_newARPObjectFromPacket_RETURN PyProtocol_newARPObjectFromPacket PyProtocol_newARPObjectFromPacket_PROTO;
PyProtocol_injectARP_RETURN PyProtocol_injectARP PyProtocol_injectARP_PROTO;
PyProtocol_ARPCheck_RETURN PyProtocol_ARPCheck PyProtocol_ARPCheck_PROTO;

int PyProtocol_ARPCheck(PyObject *o)
{
    return ARPObject_Check(o);
}


/**************
*    ARP     *
**************/
ARPObject *
PyProtocol_newARPObjectFromPacket(arp_t *arp, int *parsed_length)
{
    ARPObject *self;
    char *packet = (char *) (arp + 1);
    struct in_addr ia;
    self = PyObject_New(ARPObject, &ARP_Type);
    if (self == NULL)
        return NULL;
    self->ar_hrd = ntohs(arp->ar_hrd);
    self->ar_pro = ntohs(arp->ar_pro); …
Run Code Online (Sandbox Code Playgroud)

c python

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

标签 统计

algorithm ×3

graph ×2

arraylist ×1

c ×1

java ×1

pattern-matching ×1

python ×1

sorting ×1

string ×1