代码题目网址是https://nanti.jisuanke.com/t/92
第一次写博客,代码啥都没保存,只剩下这个了
import java.util.*; public class Main { int i =0; public String[] paixu(String[] strings){ String[] result = new String[strings.length]; for(int j = 0 ;j<strings.length;j++){ String max = ""; for(int i = 0 ;i<strings.length;i++){ if(max.compareTo(strings[i])<0){ boolean flag = true; for(String s:result){ if(s!=null && strings[i].equals(s)) flag = false; } if(flag) max=strings[i]; } } result[strings.length-1-j]=max; } return result; } public int bijiao(String newSting,String[] oldStrings){ for (int i = 0; i < oldStrings.length; i++) { if (oldStrings[i].equals(newSting)) return i; } return -1; } public Main() { Scanner in = new Scanner(System.in); int L = Integer.parseInt(in.nextLine()); String str = in.nextLine(); while(L>72 && str.length()%72==0 && in.hasNext()) str+=in.nextLine(); if(str.length()!=L) return; String[] strings = new String[L]; for( int i =0 ;i<L;i++){ String temp = ""; temp = str.substring(i)+str.substring(0, i); strings[i] = temp; } System.out.println(bijiao(paixu(strings)[0], strings)); } public static void main(String[] args) { new Main(); } }
然后改进到最后是这个样子:
import java.util.*; public class Main { public Main() { Scanner in = new Scanner(System.in); int L = Integer.parseInt(in.nextLine()); String str = in.nextLine(); while(L>72 && str.length()%72==0 && in.hasNext()) str+=in.nextLine(); if(str.length()!=L) return; String min =str; int n = 0; for( int i =0 ;i<L;i++){ if(str.compareTo(min)<0){ min=str; n=i; } str = str.substring(1)+str.substring(0, 1); } System.out.println(n); } public static void main(String[] args) { new Main(); } }
然并卵,到第8组测试运行超时。。明明就只有一个for循环
求解。。