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读取mnist
    开始学习haskell
    pip升级所有packages
    ImportError: numpy.core.multiarray failed to import
    NumPy for MATLAB users
    Spyder
    初学ObjectiveC
    Matlab闭包
    ObjeciveC 内存管理
  • 原文地址:https://www.cnblogs.com/jeasion/p/10758329.html
Copyright © 2011-2022 走看看