zoukankan      html  css  js  c++  java
  • [LC] 796. Rotate String

    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;
        }
    }
  • 相关阅读:
    1619: 【例 1】Prime Distance
    Apache的架构师们遵循的30条设计原则(转帖)
    DP秒思维
    dsu on tree入门
    莫队入门
    行列式与霍尔基夫矩阵
    高精度板子
    splay入门
    回文自动机入门
    AC自动机
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12200436.html
Copyright © 2011-2022 走看看