国产探花免费观看_亚洲丰满少妇自慰呻吟_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         }

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静宁县| 叙永县| 霸州市| 吴川市| 鄯善县| 西华县| 江津市| 元朗区| 德兴市| 多伦县| 平谷区| 福安市| 瑞昌市| 庆安县| 太仆寺旗| 泾川县| 福建省| 奎屯市| 灵川县| 兴和县| 威远县| 大庆市| 孟州市| 恩施市| 通化县| 视频| 通山县| 余姚市| 清流县| 额济纳旗| 新乐市| 武陟县| 祁连县| 水富县| 南安市| 桂东县| 泽库县| 延长县| 泽库县| 桂东县| 遂昌县|