编程之美 3.1-字符串循环移位包含

Posted hequnwang10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程之美 3.1-字符串循环移位包含相关的知识,希望对你有一定的参考价值。

一、题目描述

s1 = AABCD, s2 = CDAA
Return : true

给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。

二、解题

匹配

将s1复制在s1末尾,这个可以使用虚拟指针,取模即可,然后对

public boolean move(String str1, String str2) 
 
        if (str1 == null || str2 == null || str1.length() == 0 || str2.length() == 0) 
            return false;
        
        int p1 = 0;
        int str1Len = str1.length();
        int str2Len = str2.length();
        for (; p1 < 2 * str1Len; p1++) 
            char ch = str1.charAt(p1 % str1Len);
 
            if (str2.charAt(0) == ch) 
                for (int j = 0; j <= str2Len; j++) 
                    if (j == str2Len) 
                        return true;
                     else if (str1.charAt((p1 + j) % str1Len) != str2.charAt(j)) 
                        break;
                    
                
            
        
        return false;
    

以上是关于编程之美 3.1-字符串循环移位包含的主要内容,如果未能解决你的问题,请参考以下文章

编程之美 2.17-字符串循环移位

Leetcode题解——数据结构之字符串

字符串移位[源:《编程之美》]

Openjudge-NOI题库-字符串移位包含问题

C语言编程: 文件移位加密与解密。

第三章结构之法--------字符串移位包含