`
YuHuang.Neil
  • 浏览: 182353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符串移位包含问题

阅读更多
问题:给定两个字符串s1和s2,要求判断s2是否能够通过s1做循环移位操作得到的字符串包含。例如,给定s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。

答:这个问题可以使用“提高空间复杂度来换取时间复杂度的降低”的思路来解决。

实现代码:



public class ShiftStringMatch {
        public static final int MATCH = 1;
        public static final int NOMATCH = 0;

        private String source;

        public ShiftStringMatch(String source){
                this.source = source;
        }

        public int doMatch(String pattern) {
                String str = this.source + this.source;
                if(str.contains(pattern)){
                        return MATCH;
                }else{
                        return NOMATCH;
                }
        }

        public static void main(String[] args){
                String s1="AABCD";
                String s2="CDAA";
                ShiftStringMatch ssm = new ShiftStringMatch(s1);
                if(ssm.doMatch(s2)==ShiftStringMatch.MATCH){
                        System.out.println("Contain!");
                }else{
                        System.out.println("Not Contain!");
                }
        }
}




分享到:
评论

相关推荐

    基于字符串移位包含的问题详解

    本篇文章是对字符串移位包含的问题的解决方法进行了详细的分析介绍,需要的朋友参考下

    关于字符串包含的问题

    第一节、一道俩个字符串是否包含的问题 1.1、O(n*m)的轮询方法 1.2、O(mlogm)+O(nlogn)+O(m+n)的排序方法 1.3、O(n+m)的计数排序方法 第二节 2.1、O(n+m)的hashtable的方法 2.2、O(n+m)的数组存储方法 ...

    2050:例5.20字串包含.cpp

    字符串移位包含问题。 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1 和s2 ,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新...

    腾讯笔试题--字符移位

    小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,...输入数据有多组,每组包含一个字符串s,且保证:1 输出描述: 对于每组数据,输出移位后的字符串。 输入例子: AkleBiCeilD 输出例子: kleieilABCD

    presto-selecto:快速选择名称匹配或包含给定字符串的类型的所有层

    快速选择其名称匹配或包含给定字符串的类型的所有层。用法cmd选项移位p-配置并运行Presto Selecto安装自动的如果您已安装其中之一,请在 , 或搜索Presto Selecto。 安装后,当有可用的更新(版本0.4及更高版本)时...

    计算机等级考试辅导三级网络技术

    二、字符串左右排序和比较 三、正整数排序求平均值(包括将数拆散、求最大最小值) 四、产品五个因素的比较排列,是结构体操作问题 五、素数 六、数字排序 七、其他数学计算 八、数字或字符移位后的...

    LeetCode判断字符串是否循环-Leetcode-Java-:Leetcode-Java-

    LeetCode判断字符串是否循环 Leetcode-Java- 一.(Sort类): 350. Intersection of Two Arrays II a.首先用HashMap遍历一遍数组nums1,Key值储存数组元素,Value(初始值为1)值储存重复元素出现次数,每出现一次加1...

    全能字符串批量替换机7.0

    6、*可抽取、采集指定模式的串,例如C程序中的注释、全部的中文字符串等等; 7、*不仅支持文本/超文本/XML,还支持office文档doc/rtf/xls/ppt; 8、*支持超长多行的查找串和替换串:可以直接使用多行来编辑; 9、*...

    2019csp-j2试题.doc

    在解决这个问题时,我们可以使用字符串处理的知识点,例如使用循环遍历字符串,统计数字 1 的个数。我们也可以使用位运算的知识点,例如使用移位运算来统计数字 1 的个数。 公交换乘 * 题目描述:给定小轩的公共...

    关于C的精粹包含至少200个C语言小程序

    205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215...

    数据结构 --算法(三级B考试)

    二、字符串左右排序和比较。 三、正整数排序求平均值(包括将数拆散、求最大最小值)。 四、产品五个因素的比较排列,是结构体操作问题。 五、素数。 六、数字排序。 七、其他数学计算。 八、数字或字符移位...

    boyer-moore-string-search:C语言中的Boyer Moore字符串搜索实现

    pattern [j]的条目指定当pattern [j-1]不匹配字符串但pattern [j ..patlen-1]的后缀匹配时,当前字符串位置应向右移动多远。用法编译并执行测试: $ make$ ./bm要删除编译的文件: $ make clean样本输出

    汇编课后题上机题上机代码

    2、 在键盘上输入的一个字符串(其中包含数字及小写字母,并以#作为字符串的结束符),要求编写一程序将该字符串在显示器上显示出来,其中,字符串中的数字直接显示,而字符串中的小写字母要转换为大写字母显示。...

    fsearch:FastSearch是一个旨在使用FPGA技术提高字符串搜索速度的项目

    项目申请快速搜索可用于: 增强嵌入式系统上的字符串搜索过滤数据包项目结构该项目包括: SearchBlock IP内核。 一个演示系统,它使用SearchBlock并包含所有必要的互连。 Linux的演示应用程序,可通过/ dev / mem...

    javascript文档

    concat 方法 (String) 返回一个包含给定的两个字符串连接的String 对象。 条件(三元)运算符 (?:) 根据条件执行两个表达式之一。 constructor 属性 指定创建对象的函数。 continue 语句 停止循环的当前迭代...

    JScript 语言参考

    concat 方法 (String) 返回一个包含给定的两个字符串连接的String 对象。 条件(三元)运算符 (?:) 根据条件执行两个表达式之一。 constructor 属性 指定创建对象的函数。 continue 语句 停止循环的当前迭代...

    微软JavaScript手册

    concat 方法 (String) 返回一个包含给定的两个字符串连接的String 对象。 条件(三元)运算符 (?:) 根据条件执行两个表达式之一。 constructor 属性 指定创建对象的函数。 continue 语句 停止循环的当前迭代...

    数据库实验 包含九个实验 有多种排序算法 链表的插入删除翻转等

    数据库实验 包含九个实验 有多种排序算法 链表的插入删除翻转等 树的三种遍历算法 字符串算法 移位密码 代换密码等

    200个经典C程序【源码】

    205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215...

Global site tag (gtag.js) - Google Analytics