回 帖 发 新 帖 刷新版面

主题:[讨论]大家救命啊!!!

暑假,简单闲着无聊,边想出了一个很奇怪的东西。。。。。。。
简单有很奇怪的方法来隐藏他的口令。他会选择一个字符串S(由L个小写字母组成,5<=L<=100,000),然后他把S顺时针绕成一个圈,每次取一个做开头字母并顺时针依次取字母而组成一个字符串。这样将得到一些字符串,他把它们排序后取出第一个字符串。把这个字符串的第一个字母在原字符串中的位置-1做为口令。 
如字符串alabala,按操作的到7个字符串,排序后得: 
aalabal abalaal alaalab alabala balaala laalaba labalaa 
第一个字符串为aalabal,这个a在原字符串位置为7,7-1=6,则6为口令。
 输入格式 Input Format  
   第一行:一个数:L 
第二行:字符串:S 

 输出格式 Output Format  
   一行,为得到的口令  
输入
 7
alabala
输出
6

回复列表 (共3个回复)

沙发

var
  l:byte;
  s:string[100];
  a:array [1..100] of string[100];
  i:byte;
begin
  readln(l);readln(s);
  for i:=1 to l do a[i]:=copy(s,i,l+1-i)+copy(s,1,i-1);
  for i:=1 to l do if a[i]<s then s:=a[i];
  write(s);
end.

板凳


这样也只能把最大的字符求出,但求a在原字符串位置怎么求????[em18]

3 楼

用for再循环一次,并用if语句判断。

我来回复

您尚未登录,请登录后再回复。点此登录或注册