已知一個序列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 != '\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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章