美文网首页
LeetCode初级算法--字符串01:反转字符串

LeetCode初级算法--字符串01:反转字符串

作者: xiaoming3526 | 来源:发表于2019-10-19 17:45 被阅读0次

    LeetCode初级算法--字符串01:反转字符串

    搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法、机器学习干货
    csdn:https://blog.csdn.net/baidu_31657889/
    csdn:https://blog.csdn.net/abcgkj/
    github:https://github.com/aimi-cn/AILearners

    一、引子

    这是由LeetCode官方推出的的经典面试题目清单~
    这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。
    查看完整的剑指Offer算法题解析请点击github链接:
    github地址

    二、题目

    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

    不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

    你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

    示例 1:

    输入:["h","e","l","l","o"]
    输出:["o","l","l","e","h"]
    

    示例 2:

    输入:["H","a","n","n","a","h"]
    输出:["h","a","n","n","a","H"]
    

    1、思路

    首先我们要注意是,不要给另外的数组分配额外的空间,你必须原地修改输入数组

    python自带的reverse方法可以直接进行翻转,这是一种方法。

    另一种方法,使用指针,我们可以看到翻转之后首位元素进行的调换,我们让头指针指向第一个元素,尾指针指向第二个元素,这样进行数组元素调换。

    2、编程实现

    python

    class Solution(object):
        def reverseString(self, s):
            """
            :type s: List[str]
            :rtype: None Do not return anything, modify s in-place instead.
            """
    
            #第一种使用reverse函数
            #s.reverse()
            
            #第二种使用指针
            head = 0
            tail = len(s)-1
            while head < tail:
                s[head],s[tail] = s[tail],s[head]
                head += 1
                tail -=1
    

    AIMI-CN AI学习交流群【1015286623】 获取更多AI资料

    分享技术,乐享生活:我们的公众号计算机视觉这件小事每周推送“AI”系列资讯类文章,欢迎您的关注!

    本文由博客一文多发平台 OpenWrite 发布!

    相关文章

      网友评论

          本文标题:LeetCode初级算法--字符串01:反转字符串

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