zoukankan      html  css  js  c++  java
  • 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"]

    M1: iterative

    把string转成array,two pointer交换对称位置的字符,最后返回c转换成的新字符串new String(c)

    time: O(n), space: O(n)

    class Solution {
        public String reverseString(String s) {
            char[] c = s.toCharArray();
            int i = 0, j = s.length() - 1;
            while(i < j) {
                char tmp = c[i];
                c[i] = c[j];
                c[j] = tmp;
                i++;
                j--;
            }
            return new String(c);
        }
    }

    M2: recursive

    time: O(n), space: O(logn)

    class Solution {
        public void reverseString(char[] s) {
            reverse(s, 0, s.length - 1);
        }
        
        private void reverse(char[] s, int i, int j) {
            if(i >= j) {
                return;
            }
            char tmp = s[i];
            s[i] = s[j];
            s[j] = tmp;
            
            reverse(s, i + 1, j - 1);
        }
    }
  • 相关阅读:
    1163
    1162
    1154
    Qt532_QWebView做成DLL供VC/Delphi使用_Bug
    Qt532__std::numeric_limits<qint64>::min();
    Qt532_WebKit_SSL问题
    Qt532_自定义QWebView_01
    HTML解析
    Qt5_pro_02
    Qt5需要的_libstdc++6_4.7.2-5_???.deb
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10123569.html
Copyright © 2011-2022 走看看