• 最强阵容


    题目描述
    拿着新换来的英雄卡,小李满心欢喜的准备和同学们PK一下。
    他们的游戏规则非常简单,双方把自己的牌绕成一圈,然后指定一个起点,从该张牌开始顺时针方向往后取,谁取出的字符串字典序更小(从左到右开始比较,碰到第一个不一样的字符进行比较,比较规则为a<b<…<z)谁将获得胜利。具体规则可参考样例。虽然现在小李的牌已经很好了,但是你能不能帮他快速算出起始位置,使得他能够派出最强阵容。

    输入
    第一行n(1<=n<=30000),表示共有n张牌。
    第二行共n个用一个空格隔开的小写字母,表示给定的一圈牌起始序列。

    输出
    仅一个整数,能获得最小字典序字符串的起点位置。如果有多个位置开始的字符串一样,则输出最小的那个位置,且第一个位置从1开始。

    样例输入
    复制样例数据
    4
    b c a b
    样例输出
    3

    提示
    四个位置取出的字符串分别为bcab,cabb,abbc,bbca,显然最小位置是3。

    #include <bits/stdc++.h>
    int main()
    {
        int n;
        scanf("%d",&n);
        char s[60006],c[2];
        for(int i=0;i<n;i++)
        {
            scanf("%s",c);
            s[i]=c[0];
            s[i+n]=c[0];
        }
        char ans[30003],temp[30003];
        strncpy(ans,s,n);
        int cnt=1;
        for(int i=0;i<n;i++)
        {
            strncpy(temp,s+i,n);   //地址加一
            if(strcmp(ans,temp)<=0)
            {
                continue;
            }
            else
            {
                strcpy(ans,temp);
                cnt=i+1;
            }
        }
        printf("%d
    ",cnt);
        return 0;
    }
    
    
  • 相关阅读:
    ThinkingInJava对this关键字的介绍
    MYSQL(三)
    MySQL(二)
    mysql语句实战
    js事件委托
    Python中应该使用%还是format来格式化字符串?
    js高级知识---词法分析和AO 链
    lsof/netstat命令的一个重要作用: 根据进程查端口, 根据端口查进程
    gg
    io多路复用
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319589.html
Copyright © 2020-2023  润新知