344. 反转字符串

一、题目原型:

编写一个函数,其作用是将输入的字符串反转过来。

二、示例剖析:

 示例 1:
 输入: "hello"
 输出: "olleh"
 
 示例 2:
 输入: "A man, a plan, a canal: Panama"
 输出: "amanaP :lanac a ,nalp a ,nam A"

三、解题思路:

1.用一个数组存起来,再反向遍历。

func reverseString(_ s: String) -> String {
    var chars: [Character] = []
    for char in s {
        chars.append(char)
    }
    var string: String = ""
    var index = s.count - 1
    while index >= 0 {
        string.append(chars[index])
        index = index - 1
    }
    return string
}

2.用一个数组接收字符串,直接利用原数组进行反转。

func reverseString(_ s: String) -> String {
    
    var chars = s.cString(using: String.Encoding.utf8)!
    var left = 0
    var right = s.count - 1
    
    while left < right {
        
        let char = chars[left]
        chars[left] = chars[right]
        chars[right] = char
        
        left = left + 1
        right = right - 1
    }
    
      print(chars)
    return String.init(utf8String: chars)!
}

四、小结

1.耗时60毫秒,超过48%的提交记录,总提交数476
2.耗时36毫秒,超过99.33%的提交记录,总提交数476

    原文作者:单车同学
    原文地址: https://www.jianshu.com/p/1d8e662d4f2e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞