小编Mel*_*Mel的帖子

在Python中编辑距离

我正在使用Python编写拼写检查程序.我有一个有效单词列表(字典),我需要从这个字典中输出一个单词列表,它与给定的无效单词的编辑距离为2.

我知道我需要从无效单词生成一个编辑距离为1的列表开始(然后再对所有生成的单词再次运行).我有三个方法,插入(...),删除(...)和更改(...)应输出编辑距离为1的单词列表,其中插入输出所有有效单词多于一个字母的单词给定的单词,删除输出所有有效单词少一个字母,并更改输出所有有效单词和一个不同的字母.

我查了很多地方,但我似乎无法找到描述这个过程的算法.我提出的所有想法都涉及多次遍历字典列表,这将非常耗时.如果有人能提供一些见解,我将非常感激.

python algorithm edit distance

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

在python中重载增强的算术赋值

我是Python的新手,如果这是一个愚蠢的问题,请提前道歉.

对于赋值,我需要为类myInt重载增强的算术赋值(+ =, - =,/ =,*=,**=,%=).我检查了Python文档,这就是我想出的:

def __iadd__(self, other):

    if isinstance(other, myInt):
        self.a += other.a
    elif type(other) == int:
        self.a += other
    else:
        raise Exception("invalid argument")
Run Code Online (Sandbox Code Playgroud)

self.a和other.a引用存储在每个类实例中的int.我尝试按如下方式测试,但每次我得到'None'而不是预期值5:

c = myInt(2)
b = myInt(3)
c += b
print c
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样?提前致谢.

python operator-overloading operators

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

何时在C++中使用指针

我刚开始学习C++中的指针,我不太确定何时使用指针,何时使用实际对象.

例如,在我的一个赋值中,我们必须构造一个gPolyline类,其中每个点由gVector定义.现在我的gPolyline类的变量如下所示:

private:
vector<gVector3*> points;
Run Code Online (Sandbox Code Playgroud)

如果我有矢量<gVector3>点,它会有什么不同?此外,是否有使用指针的一般经验法则?提前致谢!

c++ pointers vector

6
推荐指数
1
解决办法
1218
查看次数

对象在传递给C#中的属性时变为null

我有一个抽象类Employee和另外两个扩展它的类(Developer和Manager).我的问题是每当我创建一个Manager时

Employee man = new Manager(1234567, 30, "Bob", "Pie")
Run Code Online (Sandbox Code Playgroud)

并尝试在新开发人员的Manager字段中设置它,

Employee codemonkey = new Developer(1234568, 20, "Code", "Monkey", (Manager)man)
Run Code Online (Sandbox Code Playgroud)

我一直得到我的经理为空的ArgumentException.我做了一些检查,当我尝试使用构造函数中的Manager属性设置它时,它会以某种方式变为null.任何关于我为什么会收到这个错误的建议都将不胜感激.TIA!

每个代码如下:

//员工类

public abstract class Employee
{
    string firstName, lastName;
    int id, yearsEmployed;

    //Names must be non-empty
    public string FirstName
    {
        get { return firstName; }
        set
        {
            if (!value.Equals(""))
            {
                firstName = value;
            }
            else
                throw new ArgumentException("name cannot be empty");
        }
    }
    public string LastName
    {
        get { return lastName; }
        set
        {
            if (!value.Equals(""))
            {
                lastName = …
Run Code Online (Sandbox Code Playgroud)

c# null properties object

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

C#中的Tribool实现

我正在尝试使用http://www.boost.org/doc/libs/1_41_0/doc/html/tribool.html作为参考来实现Tribool类型.

我正在使用结构,因为它是一个原始类型,不应该是可扩展的.我知道有三种类型的Tribools --- True,False和Unknown,默认构造函数应该提供一个False Tribool.我的问题是,我将什么数据类型设置为True,False和Unknown?现在我有:

struct Tribool
{
    //True, False, and Unknown public constants
    public static readonly Tribool TRUE, FALSE, UNKNOWN;

    //Constructors
    public Tribool()
    {
        Tribool = FALSE; //use ValueType instead?
    }
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否正确,因为看起来我只是将Tribool设置为另一个Tribool.我应该使用ValueType吗?当我在VS中输入时,它突然出现,听起来很明智,但我无法从谷歌那里找到很多关于它的信息.

此外,Tribool需要能够使用常规bool操作,这意味着需要重载"true"和"false".这是否需要操作员超载?或者它应该只是一个返回bool的方法?

提前致谢!

编辑:对不起,我应该提到这是一个任务.所以我不能使用bool,尽管它们更加实用,正如你们许多人所指出的那样.

c# operator-overloading

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

int e = 0000007的toString()省略全零.我怎样才能保存它们?

我正在尝试用C#编写一个程序,它接受一个int x并判断它是否正好有7位数.现在我正在使用x.toString().长度== 7来检查,但是我注意到如果数字从0开始,它会自动被省略,我得到一个错误的答案(即程序认为输入长度较少)比7)

有没有办法来解决这个问题?提前致谢.

编辑:对不起我应该提到,这是一个收集和验证身份证号码格式的程序(所以我不希望像0000001这样的东西默认为1)感谢字符串输入建议,我想我要去试试看.

c# int numbers

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

覆盖C#结构中的默认值

对于赋值,我必须使用struct在C#中编写Tribool类.只有三种可能的tribools,True,False和Unknown,我将这些声明声明为静态只读.像这样:

public static readonly Tribool True, False, Unknown;
Run Code Online (Sandbox Code Playgroud)

我需要我的默认构造函数来提供一个False Tribool,但我不知道如何解决这个问题.我已经尝试了Tribool() { this = False; },Tribool() { False; }但我一直得到一个"结构不能包含显式无参数构造函数"错误.

赋值指定Tribool的默认构造函数应该提供False Tribool.否则,用户不应该能够创建任何其他Tribools.我现在还不知道该怎么做.任何建议将不胜感激.谢谢.

c# struct

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

循环遍历空javascript数组返回数组对象函数

我注意到在我的javascript中,如果我创建一个空数组,循环它作为一个关联数组,并打印出内容,它返回看起来像Array Object类本身的函数.这是我的代码:

var test = new Array();
for(var i in test){
    document.write(i + " " + test[i] + "<br>");
}
alert(test.length); // this returns 0
Run Code Online (Sandbox Code Playgroud)

上面的代码打印出以下内容(我省略了一些输出,因为它有点长)

$family function (){return u; }
$constructor function Array() { [native code] }
pop function pop() { [native code] }
push function push() { [native code] }
reverse function reverse() { [native code] }
shift function shift() { [native code] }
sort function sort() { [native code] }
splice function splice() { [native code] } …
Run Code Online (Sandbox Code Playgroud)

javascript arrays loops for-loop associative

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

使用Python套接字将数据作为实例发送

我正在研究2人游戏的网络部分(类似于俄罗斯方块),我正试图将游戏网格从客户端传递到服务器,反之亦然.但是,当我尝试使用send(grid)时,我得到一个TypeError:send()参数1必须是字符串或只读缓冲区,而不是实例.

无论如何要绕过这个,或者我是否必须将我的网格实例转换为字符串然后从另一边解释它?提前致谢!

python sockets

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