判断s2是否能够被通过s1做循环移位(rotate)得到的字符串是否包含

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

看到 这里的一个思路 字符串移位包含的问题(编程之美)

引用原文

  解法二:我们也可以对循环移位之后的结果进行分析。

以S1 = ABCD为例,先分析对S1进行循环移位之后的结果,如下所示:

ABCD--->BCDA---->CDAB---->DABC---->ABCD……

假设我们把前面的移走的数据进行保留,会发现有如下的规律:

ABCD--->ABCDA---->ABCDAB---->ABCDABC---->ABCDABCD……

因此,可以看出对S1做循环移位所得到的字符串都将是字符串S1S1的子字符串。如果S2可以由S1循环移位得到,那么S2一定在S1S1上,这样时间复杂度就降低了。

代码如下:为什么不封装呢?你猜。

 1  static void Main(string[] args)
 2         {
 3
 4             String s1="ABDDE";
 5             String s2="DDAB";
 6             string s3=string.Concat(s1,s1);
 7             if (s3.Contains(s2))
 8             {
 9             Console.WriteLine("true");
10         }else{
11             Console.WriteLine("false");
12         }
13             Console.ReadKey();
14
15         }

                      ------再一次站在巨人的肩膀上

时间: 2024-07-31 12:13:57

判断s2是否能够被通过s1做循环移位(rotate)得到的字符串是否包含的相关文章

经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)

题目 Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring ( i.e., "waterbottle" is a rotation of &qu

判断字符串中包含3个连续(升、降)或相同的数字

有网友问及“asp.net怎么判断一个手机号字符串中包含3个连续的字符或3个相同的字符?”: Insus.NET做了一下练习,并把方法分享,希望网友们能从中获取一些启示.面向对象嘛,先写一个Number类,用来处理号码之用,很是一个很简单的类,一目了然. #38至#41的方法,IsUpNumber()判断是否为连续升序的数字.#43至#46的方法,IsDownNumber()判断是否为连续降序的数字.#48至#51的方法,IsSameNumber()判断是来为连续相同的数字.#53至#57的方法

python判断字符串是否包含另一字符串的方法的代码

把做工程过程中经常用到的内容段做个备份,下边内容是关于python判断字符串是否包含另一字符串的方法的内容. contains = 'abcde'.find('bcd') >= 0 方法二: contains = 'abcde'.count('bcd') > 0 原文地址:https://www.cnblogs.com/cantury/p/11473891.html

Java中判断某一字符串是否包含数字、字母和中文

在Java中判断某一字符串是否为纯英文.纯数字.英文和数字的组合等时,通常使用正则str.matches匹配,告诉这个字符串是否与给定的正则表达式匹配. 各种字符的unicode编码的范围: 汉字:[0x4e00,0x9fa5](或十进制[19968,40869]) 数字:[0x30,0x39](或十进制[48, 57]) 小写字母:[0x61,0x7a](或十进制[97, 122]) 大写字母:[0x41,0x5a](或十进制[65, 90]) import java.util.regex.M

php如何判断一个字符串是否包含另一个字符串

来自1:http://blog.sina.com.cn/s/blog_8edc37a801016yha.html -------------------------------------------------------------------- 我觉得最简单的就是:(用这种最好,StrPos效率最高) strpos($a, $b) !== false 如果$a 中存在 $b,则为 true ,否则为 false. 用 !== false (或者 === false) 的原因是如果 $b 正

String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。

// 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951", ""); System.out.println(phoneNum); //判断指定字符串是否包含另一字符串 String phoneNum="1795112345"; String IpNum="17951"; return phoneNum

判断字符串是否包含其他字符串

//判断两字符串是否相等- (BOOL)isEqualToString:(NSString *)aString; //判断开头是否包含该字符串- (BOOL)hasPrefix:(NSString *)aString; //判断结尾是否包含该字符串- (BOOL)hasSuffix:(NSString *)aString; //该字符串在那个位置- (NSRange)rangeOfString:(NSString *)aString; 判断字符串是否包含其他字符串,布布扣,bubuko.com

判断JSON返回的对象中的firstName这一列的值是否包含指定的字符

判断JSON返回的对象中的firstName这一列的值是否包含指定的字符,如果包含指定字符则返回true,否则返回false 标签: <无> 代码片段(1)[全屏查看所有代码] 1. [代码][其他]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

Struts标签&lt;s:if&gt;判断字符串是否包含一个固定的值

Struts标签<s:if>判断字符串是否包含一个固定的值:1.如果比较对象是字符串: 1 <s:if test="str.contains('判断是否包含的字符串')" > 2 包含 3 </s:if> 4 <s:else> 5 不包含 6 </s:else> 2.如果比较对象是某个对象的属性: 1 <s:if test="(notice.title).contains('通知')"> 2 &