阅读背景:

已知一个序列seq=[a,b,....,z,aa,ab,...,zz,aaa,aab,....],求任意一个字符串s=[a-z]+在seq中出现的位置

来源:互联网 
// 26进制,不过有缺点,需要大数处理
#include <iostream>

using namespace std;

long pow(long x, long y)
{
	long ret = 1;
	while(y>0)
	{
		ret = ret*x;
		--y;
	}
	return ret;
}

long look_up_seq(char* pstr)
{
	long ret = 0;
	int i = 0;
	while(*pstr != '
// 26进制,不过有缺点,需要大数处理
#include <iostream>

using namespace std;

long pow(long x, long y)
{
	long ret = 1;
	while(y>0)
	{
		ret = ret*x;
		--y;
	}
	return ret;
}

long look_up_seq(char* pstr)
{
	long ret = 0;
	int i = 0;
	while(*pstr != '\0')
	{
		ret += (*pstr-'a') * pow(26, i);
		++i;
		++pstr;
	}

	return ret;
}

int main(int argc, char* argv[])
{
	cout << look_up_seq("a")<<endl;
	cout << look_up_seq("z")<<endl;
	return 0;
}



') { ret += (*pstr-'a') * pow(26, i); ++i; ++pstr; } return ret; } int main(int argc, char* argv[]) { cout << look_up_seq("a")<<endl; cout << look_up_seq("z")<<endl; return 0; }// 26进制,不过有缺点,需要大数处理 #include <iostream>



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: