UVA1584 环状序列 Circular Sequence
UVA1584 环状序列 Circular Sequence题目大意部分 DNA 序列是环形的。例如序列 “CGAGTCAGCT”它的最后一个字符 T 和第一个字符 C 首尾相连我们始终按顺时针方向读取这个环形序列。环形序列不方便直接存入计算机我们可以在环形的任意位置切开把它变成一条线性字符串。一条环形序列能切出多条不同的线性字符串我们需要从中选出字典序最小的那一条。你的任务是给定环形序列对应的任意一条线性字符串输出切开后字典序最小的字符串。如果有多个相同最小值输出任意一个即可。输入格式第一行是测试用例数量 T。接下来每一行是一条由 A、C、G、T 组成的字符串代表环形 DNA 序列的一种线性写法。字符串长度在 2~100 之间。输出格式每个测试用例输出一行为切开后字典序最小的线性字符串。解题思路先把原来的字符串自己拼接到自己后面这样环形断开后所有的字符串都能在这个新长串里截取到然后挨个从每一个位置截取和原字符串长度一样的子串把每一段都拿出来相互比较保留字典序最小的那一串字符最后把这个最小值输出。完整代码importjava.util.Scanner;publicclassCircularSequence{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);inttsc.nextInt();sc.nextLine();for(inti0;it;i){Stringssc.nextLine();StringdoubleSss;intlengths.length();StringminStrdoubleS.substring(0,length);for(intj0;jlength;j){StringstrdoubleS.substring(j,jlength);if(str.compareTo(minStr)0){minStrstr;}}System.out.println(minStr);}sc.close();}}