344. 反转字符串

作者: 花果山松鼠 | 来源:发表于2018-09-25 18:10 被阅读8次

一、题目原型:

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

二、示例剖析:

 示例 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

相关文章

网友评论

    本文标题:344. 反转字符串

    本文链接:https://www.haomeiwen.com/subject/uqwloftx.html