题目描述:
给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。
示例 1:
输入: s = “abcde”, goal = “cdeab”
输出: true
示例 2:
输入: s = “abcde”, goal = “abced”
输出: false
提示:
1 <= s.length, goal.length <= 100
s 和 goal 由小写英文字母组成
代码:
package dayLeetCode;
import com.sun.deploy.util.StringUtils;
public class dayleetcode796 {
public boolean rotateString(String s, String goal) {
boolean ansflag = false;
// 如果两个字符串的长度不相等 则一定为false
if (s.length() != goal.length()){
return false;
}
// 最坏的情况无非就是将s中的每一位都移动一下,即又变成了s,所以移动成为的字符串的可能都包含在s+s的长度为s.length的子串中
// 因此只需要判断goal是不是s+s的子串即可
String tmpStr = s + s;
ansflag = tmpStr.contains(goal);
return ansflag;
}
public static void main(String[] args) {
dayleetcode796 dayleetcode796 = new dayleetcode796();
System.out.println(dayleetcode796.rotateString("abcde", "cdeab"));
}
}