一点一点前进...

0%

是否是变位字符串

具体问题是说,如果给两个字符串s1,s2,写一个方法,判断s1能否通过旋转变成s2。比如watset按照某个点旋转编程setwat,还能旋转成tsetwa。限制是只能用一次isSubstring方法。

编程珠玑这本书有提到类似的问题。思路挺简单:
如果能旋转的话,假定x和y都是字符串
s1=xy
s2=yx
那么s2可能是s1s1的子字符串,具体说来就是yx一定是xyxy的子字符串。

1
2
3
4
5
6
7
8
9
public static bool IsRotation(string s1, string s2)
{
if (s1.Length != s1.Length)
{
return false;
}

return IsSubstring(s1 + s1, s2);
}