计算机中,一个字符串,比较相邻的两个字符,记录下小的字符,如果两个字符相等,就分别向后移一位,再比较,如果再相等,就继续分别向后移一位,再比较,如果向后移位没有字符了,就移到开始位置,直到比较出大小。
可以看出在一个环状结构中,有不同的元素,用循环移位的方法比较两个相同的元素,即两个元素相等,就比较它俩关系相同的元素,直到分出大小
虽然不懂循环移位的原理,但很符合社会上的现象呀;就像两个成绩相当的学生,体育成绩也一样,就去比较竞赛成绩;就像两个年轻人,拼爹拼不过,拼爷爷;计算机是科学的,逻辑严谨的,社会上这种比较方式可能也是有合理的依据的吧
代码如下:
#include<iostream>
#include<string>
using namespace std;
int n,i,j,ans;
string s;
char get(int i)
{
if(i<n) return s[i];
else return s[i-n];
}
int main(){
cin>>s;
n=s.size();
ans=0;
for(i=1;i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
if(get(i+j)<get(ans+j))
{
ans=i;
break;
}
else if(get(i+j)>get(ans+j))break;
}
for(j=0;j<=n-1;j++)
cout<<get(ans+j);
cout<<endl;
return 0;
}
网友评论