题目链接
题目描述
实现代码
个人思路实现代码:
class Solution {public boolean rotateString(String s, String goal) {int m = s.length();int n = goal.length();if(m != n) {return false;}char firstG = goal.charAt(0);for(int i=0; i<m; i++) {char curS = s.charAt(i);if(curS == firstG) {int j = i+1;int k = 1;boolean access = true;for(; j<m & k<n; j++, k++) {if(s.charAt(j) != goal.charAt(k)) {access = false;break;}}if(access) {for (j = 0; j < i; j++) {if (s.charAt(j) != goal.charAt(k + j)) {access = false;break;}}}if(access) {return true;}}}return false;}}
参考思路一:源字符串拼接寻找子串思想:
class Solution {public boolean rotateString(String s, String goal) {return s.length() == goal.length() && (s + s).contains(goal);}}
参考思路二:数学思想:
class Solution {public boolean rotateString(String s, String goal) {int m = s.length(), n = goal.length();if (m != n) {return false;}for (int i = 0; i < n; i++) {boolean flag = true;for (int j = 0; j < n; j++) {if (s.charAt((i + j) % n) != goal.charAt(j)) {flag = false;break;}}if (flag) {return true;}}return false;}}
