题目地址:
https://leetcode.com/problems/rotate-string/
给定两个字符串 s s s和 t t t,如果将 s s s右移若干位能成为 t t t,则返回true,否则返回false。右移的意思是,将每个字母向右挪 1 1 1位,如果出界了,就依次加到左边。
如果长度相等,只需判断 s + s s+s s+s是否包含 t t t。代码如下:
class Solution {
public boolean rotateString(String A, String B) {
if (A.length() != B.length()) {
return false;
}
return (A + A).contains(B);
}
}
时间复杂度 O ( n 2 ) O(n^2) O(n2),空间 O ( n ) O(n) O(n), n n n是字符串长度。时间复杂度主要要看java对于在一个字符串中找另一个是否存在的实现方式。