文章目录
  1. 1. 文档更新说明
  2. 2. 前言
  3. 3. 796. Rotate String
    1. 3.1. Example
    2. 3.2. Note
    3. 3.3. Solution

文档更新说明

  • 最后更新 2018年03月12日
  • 首次更新 2018年03月12日

前言

  使用Swift语言完成LetCode题目,简单难度

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 become B after some number of shifts on A.

Example

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

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

Note

  A and B will have length at most 100.

Solution

  A字符在匹配B的过程中会不停把第一个字母移动到最右边,一直调换下去,调换(字符串长度)次之后,就回到最初的状态.因此如果这个调换的过程中能够出现B字符串的子串时,那么将两个A合在一起之后,必定可以在新的字符串中找到B对应的子串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Foundation

class Solution {
func rotateString(_ A: String, _ B: String) -> Bool {
guard A.count == B.count else {
return false
}

let s = A + A
return s.contains(B)
}
}


let s = Solution()
print(s.rotateString("abcde", "cdeab"))

文章目录
  1. 1. 文档更新说明
  2. 2. 前言
  3. 3. 796. Rotate String
    1. 3.1. Example
    2. 3.2. Note
    3. 3.3. Solution