题目描述
假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。
给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。
测试样例:
"Hello world","worldhello "
返回:false
"business","ssenisub"
返回:true
/**
*
* @param s1 传入的字符串
* @param s2 检查字符串
* @return 返回是否s2是由s1旋转而成
*/
public boolean checkReverseEqual(String s1, String s2) {
if (s1 == null || s2 == null || s1.length() != s2.length()) {
return false;
}
String s3 = s2 + s2;
<span style="color:#FF0000;"> /**
* int java.lang.String.indexOf(String str)
* Returns the index within this string of the first occurrence of the specified substring.
* The returned index is the smallest value k for which:
* this.startsWith(str, k)
* If no such value of k exists, then -1 is returned.
*/</span>
int value = s3.indexOf(s1);
if (value != -1)
return true;
else
return false;
}