题目:如果字符串s中的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被称为t的回环变位。例如,ACTGACG就是TGACGAC的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串s和t是否为回环变位。
上代码:
import java.io.BufferedInputStream; import java.util.Scanner; public class test { public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); String s = cin.next(); String t = cin.next(); cin.close(); // indexOf返回指定子字符串在此字符串中第一次出现处的索引,如果找不到子串就返回-1 if ((s.length() == t.length()) && (s.concat(s).indexOf(t) >= 0)) { System.out.println("Yes"); } else { System.out.println("No"); } } }
========================================Talk is cheap, show me the code=======================================