zoukankan      html  css  js  c++  java
  • 回环变位

    《算法 4edit》1.2.6

    Q:

    如果字符串s中的字符循环移动任意位置之后能够得到另一字符串t,那么s就被称为t的回环变位。例如,ACTGACG 就是 TGACGAC 的一个回环变位,反之亦然。判定这个条件在基因组序列中的研究是十分重要的。编写一个算法检查两个给定的字符串s和t是否互为回环变位.

    A:

    • 将s2进行自我拼接,如果s1的长度等于s2的,并且拼接后的s2包含s1,则是回环变位
    	public static boolean circular1(String s1, String s2) {
    		return s1.length() == s2.length() && (s2 + s2).contains(s1);
    	}
    • 将s1按位拆分为两部分,两部分重新拼接,如果出现了s2的字符,则是回环变位
    public static boolean circular2(String s1, String s2) {
       
         if (s1 == s2)     return true;
    
         if (s1.length() != s2.length())
    			
                return false;
    
         for (int i = 0; i < s1.length(); i++) {
    			
                String temp1 = s1.substring(0, i);
    
    	    String temp2 = s2.substring(i, s1.length());
    
    	    if ((temp1 + temp2).equals(s2))
    
    		return true;
    	}
         return false;
    }
  • 相关阅读:
    尝试一下搭博客
    python IO
    python OOP
    杂笔记
    codeforces 217E 【Alien DNA】
    dfs序七个经典问题(转)
    poj 1945 Power Hungry Cows A*
    NOIP 2012 洛谷P1081 开车旅行
    洛谷 P1924 poj 1038
    poj 2176 folding
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758329.html
Copyright © 2011-2022 走看看