• (字符串 数组 递归 双指针) leetcode 344. Reverse String


    Write a function that reverses a string. The input string is given as an array of characters char[].

    Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

    You may assume all the characters consist of printable ascii characters.

    Example 1:

    Input: ["h","e","l","l","o"]
    Output: ["o","l","l","e","h"]
    

    Example 2:

    Input: ["H","a","n","n","a","h"]
    Output: ["h","a","n","n","a","H"]

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    1)
    这个是水题,不过我打算用递归来解决它
    C++代码:
    class Solution {
    public:
        void reverseString(vector<char>& s) {
            helper(s,0,s.size()-1);
        }
        void helper(vector<char>& s,int start,int end){
            if(start >= end){
                return;
            }
            char tmp = s[start];
            s[start] = s[end];
            s[end] = tmp;
            helper(s,start+1,end-1);  //是两端往中心靠的递归
        }
    };

     2)

    这个可以用双指针。

    C++代码:

    class Solution {
    public:
        void reverseString(vector<char>& s) {
            int i = 0,j = s.size() - 1;
            while(i < j){
                swap(s[i],s[j]);
                i++;
                j--;
            }
        }
    };
    
    
  • 相关阅读:
    网页的摘要信息
    自我介绍
    DIV和SPAN的区别
    软件工程简介
    设置层的漂移
    构建之法现代软件工程
    手机验证码的相关知识
    Python2和Python3的区别
    我的第一个练习
    结对编程后传之做汉堡
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10738685.html
Copyright © 2020-2023  润新知