sss7020
2018-06-21 12:53:22
代码比较简洁。说一个东西:
用sort()排字符串数组(string数组,c++)就是按字典序排的(系统已重载运算符),所以一个sort就搞定了!
老规矩:先上代码,再说废话:
#include<iostream>
#include<string>
#include<algorithm>
//sort必备
using namespace std;
int main(){
string s;
int kase,k;
cin>>kase;
while(kase--){//循环开始了
cin>>s;//输入字符串
string st[105];
//为节省空间,系统将string类默认为空串
for(k=0;k<s.length();k++){
//k是代表从哪个字符开始读
for(int i=k;i<k+s.length()/*循环s.lenth()次*/;i++){
st[k]+=s[i%s.length()];
//字符串往后填几个字符串
//+运算符的用法:
//看我题解:
//https://www.luogu.org/blog/winnerking1412/solution-uva455
}
}
sort(st,st+s.length());
//排序
cout<<st[0]<<endl;//输出第一个字符串
}
return 0;
}
废话来了!
方法:用%模拟环形
不具体是不是?听我慢慢跟你说。
要是用%的话,那么
(
懂了吧(没懂跟我私信)
具体方法:
首先,用k作从哪一位开始数形成的环形,用%模拟环形,并将字符一个一个存入数组中对应字符串中,最后将数组排序,输出第一个(也就是经排序后最小的(已经改变数组)),然后再输入一个字符串,直到EOF。
听懂了就好,没听懂也可以跟我私信