国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

判斷s2是否能夠被通過s1做循環移位(rotate)得到的字符串是否包含

2019-11-17 02:44:06
字體:
來源:轉載
供稿:網友

判斷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         }

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮阳县| 福安市| 江永县| 临湘市| 卢龙县| 彭州市| 忻州市| 伊春市| 平遥县| 漳州市| 松溪县| 普兰店市| 武冈市| 保靖县| 漯河市| 庐江县| 赤峰市| 鄄城县| 万年县| 延庆县| 兰州市| 上高县| 玛纳斯县| 来凤县| 怀来县| 集安市| 龙泉市| 新龙县| 青河县| 临汾市| 台安县| 汾阳市| 绥宁县| 玉田县| 合川市| 武平县| 谷城县| 永清县| 玉田县| 泸定县| 邢台市|