变位词

题目:找到词典中某词的变位词 源自编程珠玑 程序是自己的想法和思路 与书一样纯属巧合

程序:不能运行 只有关键函数 和类

#include<cstring>

#include<vector>

using namespace std;

const char UNSET='0';

const char SET='1';

const string NEW="000000000000000000000000000";

const int GAP=32;

vector<string> id_map;

class sto_wor

{

private:

string wor;

string mea;

string id;

public:

sto_wor(){id=NEW;}

~sto_wor(){}

string get_wor(){return wor;}

string get_mea(){return mea;}

string get_id(){return id;}

void set_wor(const string& tem){wor=tem;}

void set_mea(const string& tem){mea=tem;}

void set_id();

bool operator==(sto_wor&);

friend void to_low(string&);

};

void sto_wor::set_id()

{

to_low(wor);

for(int i=0;i<wor.length();i++)

{

id[wor[i]-'a'+1]++;

}

id[0]=SET;

}

bool sto_wor::operator==(sto_wor& sec)

{

if(id[0]==UNSET)

set_id();

if(sec.id[0]==UNSET)

sec.set_id();

return id==sec.id;

}

void to_low(string& aim)

{

for(int i=0;i<aim.length();i++)

{

if(aim[i]<'Z')

aim[i]+=GAP;

}

}

void sea_wor(sto_wor& aim)

{

int low=0;

int hig=id_map.size();

while(low<=hig)

{

mid=(low+hig)/2;

if(aim.get_id()<id_map[mid])

hig=mid-1;

else if(aim.get_id()>id_map[mid])

low=mid+1;

else cout<<"something";

}

cout<<"something else";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值