Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 977 Bytes

File metadata and controls

56 lines (42 loc) · 977 Bytes

344. Reverse String

Leetcode link

解题思路

  • TC: O(n)
  • SC: O(1)

本题要求逆转一个字符数组,一个简单的思路就是用两个指针分别从数组头与尾前进,并依次交换直到指针相遇。

C++

// for 版本
class Solution {
 public:
  void reverseString(vector<char>& s) {
    int len = s.size();
    for (int i = 0; i < len / 2; i++) {
      int temp;
      temp = s[i];
      s[i] = s[len - 1 - i];
      s[len - 1 - i] = temp;
    }
  }
};

// while 版本
class Solution {
 public:
  void reverseString(vector<char>& s) {
    int left = 0, right = s.size() - 1;
    while (left < right) swap(s[left++], s[right--]);
  }
};

Javascript

var reverseString = function(s) {
    let left = 0, right = s.length - 1;
    while (left < right) {
        // swap
        [s[left], s[right]] = [s[right], s[left]];
        right--;
        left++;
    }
};