是否是变位字符串 发表于 2014-12-15 分类于 计算机 , 算法 Disqus: 具体问题是说,如果给两个字符串s1,s2,写一个方法,判断s1能否通过旋转变成s2。比如watset按照某个点旋转编程setwat,还能旋转成tsetwa。限制是只能用一次isSubstring方法。 编程珠玑这本书有提到类似的问题。思路挺简单:如果能旋转的话,假定x和y都是字符串s1=xys2=yx那么s2可能是s1s1的子字符串,具体说来就是yx一定是xyxy的子字符串。 123456789public static bool IsRotation(string s1, string s2){ if (s1.Length != s1.Length) { return false; } return IsSubstring(s1 + s1, s2);}