zoukankan      html  css  js  c++  java
  • uva1584 Circular Sequence(Uva-1584)

    vj:https://vjudge.net/problem/UVA-1584

    这个题讲的是一个圆环,圆环上面有一堆字母,找出字典序最小的那一圈

    这个题我觉得直接用c语言的strcmp那一套感觉真是用不习惯,而且很快就出错,用c++的string类就比较简单了。

    我的思路是既然要找出字典序最小,而且还是一个圆环可以把原来的字符串首位相连然后从第一位开始两个for,外面for

    代表第一个开始的地方,里面for代表原来的字符串的长度,那么这样就能遍历所有的字符串用string直接比较字典序的大小即可

    我的代码:

    #include <iostream>
    using namespace std;
    main()
    {
        int n;
        cin>>n;
        while(n--)
        {
            string a;
            cin>>a;
            string min=a;
            a=a+a;
            //cout<<min<<" "<<a<<endl;
            string test;
            for(int i=0;i<=min.size();i++)
            {
                test="";
                for(int j=i;j<min.size()+i;j++)
                test=test+a[j];
                if(test<min)
                min=test;
                //cout<<test<<endl;
            }
            cout<<min<<endl;
        }
    }

    之前的代码:

    #include <iostream>
    #include <string>
    #include <cstring>
    using namespace std;
    main()
    {
        int jj;
        cin>>jj;
        int num=0;
        for(int i=0;i<jj;i++)
        {
            char a[300],t[300],aa[300];
            cin>>a;
            int n=strlen(a);
            string c,min;
            min=a;
            int p=0;
            for(int j=n;j<2*n;j++)
            a[j]=a[p++];
            for(int k=0;k<n;k++)
            {
                p=-1;
                for(int j=k;j<n+k;j++)
                t[++p]=a[j];
                c=t;
                if(c<min)
                min=c;
            }
            strcpy(aa,min.c_str());
            for(int j=0;j<n;j++)
            cout<<aa[j];
            cout<<endl;    
        }    
    } 
  • 相关阅读:
    SOLD原则
    整理了自我感觉比较好的链接分享
    编程中所使用的23中模式
    第十周 吉林市一日游
    第十周 psp
    词频统计
    第九周 psp
    第八周PSP
    正确评估SQL数据库性能,你必须知道的原理和方法!
    MongoDB套路
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/9736040.html
Copyright © 2011-2022 走看看