4864148_tle.cpp

来自「部分PKU上的源码」· C++ 代码 · 共 55 行

CPP
55
字号
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int compare(const void *p1,const void *p2)
{
	string q1=*(string*)p1;
	string q2=*(string*)p2;
	return q1.compare(q2);
}
int main()
{
	int testnumber,i;
	string input;
	string q[1000];
	int ql;
	cin>>testnumber;
	for(int count=0;count<testnumber;count++)
	{
		cin>>input;
		ql=0;
		q[ql]=input;
		for(i=1;i<input.length();i++)
		{
			string t1,t2,ne;
			t1=input.substr(0,i);
			t2=input.substr(i,input.length());
			ne=t2+t1;
			q[ql++]=ne;
			reverse(t1.begin(),t1.end());
			ne=t1+t2;
			q[ql++]=ne;
			ne=t2+t1;
			q[ql++]=ne;
			reverse(t2.begin(),t2.end());
			ne=t1+t2;
			q[ql++]=ne;
			ne=t2+t1;
			q[ql++]=ne;
			reverse(t1.begin(),t1.end());
			ne=t1+t2;
			q[ql++]=ne;
			ne=t2+t1;
			q[ql++]=ne;
		}
		qsort(q,ql,sizeof(string),compare);
		int all=1;
		for(i=1;i<ql;i++)
		{
			if(q[i]!=q[i-1]) all++;
		}
		cout<<all<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?