此题来自cracking the coding interview,这本书是讲如何准备程序员面试的,非常不错
免积分下载:
http://download.csdn.net/detail/stevemarbo/4098275
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
example:
"waterbottle" is a rotation of "erbottlewat"
此题方法很巧妙,把s1和自己拼接起来,形成一个字符串,这个字符串就会包含各种rotation的情况
public static boolean isRotation(String s1, String s2) {
int len = s1.length();
/* check that s1 and s2 are equal length and not empty */
if (len == s2.length() && len > 0) {
/* concatenate s1 and s1 within new buffer */
String s1s1 = s1 + s1;
return isSubstring(s1s1, s2);
}
return false;
}