• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[Swift]LeetCode796.旋转字符串|RotateString

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址: https://www.cnblogs.com/strengthen/p/10547242.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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 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.

给定两个字符串, A 和 B

A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True

示例 1:
输入: A = 'abcde', B = 'cdeab'
输出: true

示例 2:
输入: A = 'abcde', B = 'abced'
输出: false

注意:

  • A 和 B 长度不超过 100

Runtime: 4 ms
Memory Usage: 20.2 MB
1 class Solution {
2     func rotateString(_ A: String, _ B: String) -> Bool {
3         if A.isEmpty && B.isEmpty {return true}
4         if A.isEmpty && !B.isEmpty {return false}
5         if !A.isEmpty && B.isEmpty {return false}
6         return A.count == B.count && (A + A).contains(B)
7     }
8 }

4ms

1 class Solution {
2     func rotateString(_ A: String, _ B: String) -> Bool {
3         guard A.count == B.count else { return false }
4         guard !A.isEmpty && !B.isEmpty else { return true }
5         return (A + A).contains(B)
6     }
7 }

8ms

 1 class Solution {
 2     func rotateString(_ A: String, _ B: String) -> Bool {
 3         
 4         if A.count == 0 && B.count == 0 {
 5             return true
 6         }
 7 
 8         var A = A
 9 
10         for _ in 0..<A.count {
11 
12             if A == B {
13                 return true
14             }
15 
16             let index = A.index(A.startIndex, offsetBy: 0)
17             A.append(A[index])
18             A.removeFirst()
19         }
20 
21         return false
22     }
23 }

16ms

 1 class Solution {
 2     func rotateString(_ A: String, _ B: String) -> Bool {
 3         
 4         guard A.count == B.count else {
 5             return false
 6         }
 7         
 8         var A = A
 9         
10         for _ in 0..<A.count where A != B {
11             A.append(A.removeFirst())
12         }
13         
14         return A == B
15     }
16 }

20016kb

 1 class Solution {
 2     func rotateString(_ A: String, _ B: String) -> Bool {
 3         guard A.length == B.length else { return false }
 4         guard A != B else { return true }
 5         guard B.length > 0 else { return false }
 6         guard A.length > 0 else { return false }
 7         
 8         let chars = Array(A).map({ String($0) })
 9         let n = chars.count
10         var fullRotation = [String](repeating:" ", count: 2 * n - 1)
11         
12         for i in 0..<n {
13             fullRotation[i + n - 1] = chars[i]
14         }
15         for i in (1..<n).reversed() {
16             fullRotation[i - 1] = chars[i]
17         }
18         
19         return fullRotation.joined().contains(B)
20     }
21 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode464.我能赢吗|CanIWin发布时间:2022-07-13
下一篇:
iOS开发swift--函数发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap