https://vjudge.net/problem/UVA-1584
1584 Circular Sequence
输入一个字符串,可以以字符串中任意一个字母作为起始,输出字典序最小的那个字符串
两种方法,一种是设两个标记
【样例输入】CGAGTCAGCT
【样例输出】AGCTCGAGTC
一开始 ans = 0,i=1;(C < G)ans不变
当i = 2时,ans = 0,因为A < C,所以 ans = 2;
当i = 6时,这时ans = 2,一直往后比较,因为ans指向的第三个字符是T,i 指向的第三个字符是C,C < T,所以ans = 6;
最后输出。
下面这个程序是通过一个一个比较去找到字典序最小的那一个。即ans = 6以后,for循环仍然继续。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
char s[105];
int len;
int fun(int ans,int i)
{
for(int j=0;j<len;j++)
{
if(s[(ans+j)%len]!=s[(i+j)%len])
return s[(ans+j)%len