首页 > 其他 > 详细

[LC] 796. Rotate String

时间:2020-01-16 12:39:10      阅读:53      评论:0      收藏:0      [点我收藏+]

We are given two strings, A and B.

shift on A consists of taking string A and moving the leftmost character to the rightmost position. For example, if A = ‘abcde‘, then it will be ‘bcdea‘ after one shift on A. Return True if and only if A can become B after some number of shifts on A.

Example 1:
Input: A = ‘abcde‘, B = ‘cdeab‘
Output: true

Example 2:
Input: A = ‘abcde‘, B = ‘abced‘
Output: false

class Solution {
    public boolean rotateString(String A, String B) {
        if (A == null || B == null || A.length() != B.length()) {
            return false;
        }     
        if  (A.length() == 0) {
            return true;
        }
        
        char firstA = A.charAt(0);
        for (int i = 0; i < B.length(); i++) {
            int j = i;
            while (j < B.length() && B.charAt(j) != firstA) {
                j += 1;
            }
            if (j == B.length()) {
                return false;
            }
            for (int k = 0; k < B.length(); k++) {
                if (A.charAt(k) != B.charAt((k + j) % B.length())) {
                    break;
                }
                if (k == B.length() - 1) {
                    return true;
                }
            }
            i = j;
        }
        return false;
    }
}

[LC] 796. Rotate String

原文:https://www.cnblogs.com/xuanlu/p/12200436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!