隐藏口令

隐藏口令,第1张

隐藏口令

问题描述 :

有时候程序员有很奇怪的方法来隐藏他们的口令。

Billy"Hacker"Geits会选择一个字符串S(由L个小写字母组成,5<=L<=100,000),然后他把S顺时针绕成一个圈。

如字符串cbadfa,绕成一个圈后,我们认为字符串首尾相连。

每次取其中一个字母作为起始字母,并顺时针依次取字母而组成一个字符串。这样将得到一些字符串。

比如字符串cbadfa,按照以上规则取出的字符串有:

cbadfa badfac adfacb dfacba facbad acbadf

我们找到最小的那个字符串,可知为acbadf,也可知道它的第一个字符'a'在原字符串cbadfa中为第6个字符(位置从1开始),

将得到的结果6减1得到5,这就是我们需要的口令。

再比如字符串alabala,绕成一个圈后,每次取其中一个字母作为起始字母,并顺时针依次取字母而组成一个字符串。这样将得到一些字符串:

alabala labalaa abalaal balaala alaalab laalaba aalabal

我们找到最小的那个字符串,可知为aalabal,它的第一个字母'a'在原字符串中位置为7,7-1=6,则6为口令。

注:如果按照规则有两个字符串都是最小的,则取前面那一个。

输入说明 :

第一行:一个数L

第二行及之后:字符串S。

注意:字符串S可跨多行,但其中的'n'不算成S中的字符

输出说明 :

一行,为得到的口令。

无多余空格或空行。

输入范例 :6
                 cbadfa

输出范例 :5

解题思路:

       将所有字符串找出来,逐一比较;

       如果帮到你了,就请点个赞叭!

#include
#include

using namespace std;

struct Str
{
    string arr;
    int space;
};

int main()
{
    char ch;
    int n,i;
    cin>>n;
    getchar();
    string ans;
    Str s[n];
    for(i=0;i 


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5692372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存