Circular Sequence 字符串处理

来源:互联网 发布:如何通过ip找到域名 编辑:程序博客网 时间:2024/03/29 04:53

基本思路是枚举所有字符串情况,选出字典序最小的一个。

如何枚举呢?不如将头部字母加到尾部,这要只需要处理2个位置,如果按移动的做法,需要处理L个位置,无疑大大增加了时间复杂度,具体处理如下

#include<cstdio>#include<cstring>#include<iostream>#define MAXD 500 + 10using namespace std;int main(){    int T;    scanf("%d",&T);    while(T--){        char str[MAXD];        char temp[MAXD];        scanf("%s",str);        strcpy(temp,str);        int L = strlen(str);        for(int i = 1 ; i <= L ; i++){            str[L + i - 1] = str[i-1];            str[L + i] = '\0';            if(strcmp(temp,str + i) > 0)                strcpy(temp,str + i);        }        puts(temp);    }    return 0;}


0 0