首页 > 学院 > 开发设计 > 正文

回环变位

2019-11-06 07:29:34
字体:
来源:转载
供稿:网友

问题描述:如果字符串s中的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被称为t的回环变位(circular rotation)。例如,ACTGACG就是TGACGAC的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串s和t是否互为回环变位。(提示:答案只需要一行用到indexOf()、length()和字符串连接的代码)

自己写的(实在想不到怎么一行完成,呵呵微笑):

import edu.PRinceton.cs.algs4.*;public class rotation {	public static void main(String[] args){		String s="ACTGACG";		String t="ACTGACG";		if(s.length()!=t.length()){			StdOut.print("no");		}else{			for(int i=0;i<s.length();i++){				if((s.substring(i, s.length())+s.substring(0, i)).equals(t)){					StdOut.print("yes");					break;				}				if(i==s.length()-1)					StdOut.print("no");			}		}	}}

标准答案(没有对比,伤害何来之有微笑)

import edu.princeton.cs.algs4.*;public class rotation {	public static void main(String[] args){		String s="ACTGACG";		String t="ACTGACG";		if(s.length()==t.length()&&s.concat(s).indexOf(t)!=-1)			StdOut.print("yes");		else			StdOut.print("no");	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表