[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;
    }
}

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

时间: 2024-08-04 09:36:36

[LC] 796. Rotate String的相关文章

796. Rotate String旋转字符串

[抄题]: We are given two strings, A and B. A 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

LeetCode 796. Rotate String

原题链接在这里:https://leetcode.com/problems/rotate-string/ 题目: We are given two strings, A and B. A 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' aft

796. Rotate String

We are given two strings, A and B. A 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 becom

[LeetCode&amp;Python] Problem 796. Rotate String

We are given two strings, A and B. A 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 becom

LeetCode算法题-Rotate String(Java实现)

这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是796).给定两个字符串A和B,在A上进行移位操作,规则是将A最左边的字符移动到最右边去.例如,如果A ='abcde',那么在A上移位一次后,它将是'bcdea'.当且仅当A在A上移位一定次数后可以变为B时返回True.

Rotate String

Given a string and an offset, rotate string by offset. (rotate from left to right) Example Given "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd&quo

LintCode: Rotate String

C++, time: O(n) space:O(n) 1 class Solution { 2 public: 3 /** 4 * @param str: a string 5 * @param offset: an integer 6 * @return: nothing 7 */ 8 void rotateString(string &str, int offset) { 9 // wirte your code here 10 // empty string->return 11 if

[LeetCode] Rotate String 旋转字符串

We are given two strings, A and B. A 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 becom

LeetCode题解之Rotate String

1.题目描述 2.问题分析 直接旋转字符串A,然后做比较即可. 3.代码 1 bool rotateString(string A, string B) { 2 if( A.size() != B.size() ) 3 return false; 4 if( A.empty() && B.empty() ) 5 return true; 6 int i = 0 ; 7 while( i < A.size() ){ 8 char c = A[0] ; 9 A += c; 10 A.er