• [Swift]LeetCode796. 旋转字符串 | Rotate String


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

    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 }
  • 相关阅读:
    使用事件驱动模型实现高效稳定的网络服务器程序
    Muduo 多线程模型:一个 Sudoku 服务器演变
    淘宝李晓拴:淘宝网PHP电子商务应用
    又一随机视频聊天网站内侧了,名字叫QQ偶遇,地址为:http://qq.17ouyu.com/
    又一随机视频聊天网站内侧了,地址为:http://www.17ouyu.com/
    多线程服务器的常用编程模型
    Linux系统shell脚本对字符串、数字、文件的判断
    【2022.01.11】HassOS的备份、HassOS的SSH连接、Docker的部署
    【2022.01.09】了解HassOS的开发者工具——添加自定义组件
    【2022.01.10】装修别墅、洋房户型的一些注意事项
  • 原文地址:https://www.cnblogs.com/strengthen/p/10547242.html
Copyright © 2020-2023  润新知