如果一段序列为ABDEF
则其环状序列的形式可以有5种,类比钟,如果要求的话,有两种方法。
1.利用STL中sort()
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string ans[105];
string s;
int T;
cin >> T;
while(T--)
{
cin >> s;
for(int i =0; i < s.length() ;i++)
{
for(int k = i;k < i + s.length();k++)
{
ans[i] += s[k % s.length()];
}
}
sort(ans,ans+s.length());
cout<<ans[0] << endl;
}
}
2.还有就是利用substr()函数,截取一段字符串
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int T ;
string s;
string ans;
cin>> T;
while(T--)
{
cin >> s;
ans = s;
for(int i =0;i < s.length();i++)
{
string t = s.substr(i,s.length()- i) + s.substr(0,i);//运算符已经重载
if(ans > t)
ans = t;
}
cout << ans<<endl;
}
return 0;
}
这两个代码,我学到了,类比钟,处理环状串的方法!!!