我正在使用Python编写拼写检查程序.我有一个有效单词列表(字典),我需要从这个字典中输出一个单词列表,它与给定的无效单词的编辑距离为2.
我知道我需要从无效单词生成一个编辑距离为1的列表开始(然后再对所有生成的单词再次运行).我有三个方法,插入(...),删除(...)和更改(...)应输出编辑距离为1的单词列表,其中插入输出所有有效单词多于一个字母的单词给定的单词,删除输出所有有效单词少一个字母,并更改输出所有有效单词和一个不同的字母.
我查了很多地方,但我似乎无法找到描述这个过程的算法.我提出的所有想法都涉及多次遍历字典列表,这将非常耗时.如果有人能提供一些见解,我将非常感激.
我是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)
谁能告诉我为什么会这样?提前致谢.
我刚开始学习C++中的指针,我不太确定何时使用指针,何时使用实际对象.
例如,在我的一个赋值中,我们必须构造一个gPolyline类,其中每个点由gVector定义.现在我的gPolyline类的变量如下所示:
private:
vector<gVector3*> points;
Run Code Online (Sandbox Code Playgroud)
如果我有矢量<gVector3>点,它会有什么不同?此外,是否有使用指针的一般经验法则?提前致谢!
我有一个抽象类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) 我正在尝试使用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#编写一个程序,它接受一个int x并判断它是否正好有7位数.现在我正在使用x.toString().长度== 7来检查,但是我注意到如果数字从0开始,它会自动被省略,我得到一个错误的答案(即程序认为输入长度较少)比7)
有没有办法来解决这个问题?提前致谢.
编辑:对不起我应该提到,这是一个收集和验证身份证号码格式的程序(所以我不希望像0000001这样的东西默认为1)感谢字符串输入建议,我想我要去试试看.
对于赋值,我必须使用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.我现在还不知道该怎么做.任何建议将不胜感激.谢谢.
我注意到在我的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) 我正在研究2人游戏的网络部分(类似于俄罗斯方块),我正试图将游戏网格从客户端传递到服务器,反之亦然.但是,当我尝试使用send(grid)时,我得到一个TypeError:send()参数1必须是字符串或只读缓冲区,而不是实例.
无论如何要绕过这个,或者我是否必须将我的网格实例转换为字符串然后从另一边解释它?提前致谢!