Hebilla 344. cuerda inversa

Hebilla 344. cuerda inversa

https://leetcode-cn.com/problems/reverse-string/

Escriba una función cuya función sea invertir la cadena de entrada. La cadena de entrada se proporciona como una matriz de caracteres char [].

No asigne espacio adicional a otra matriz, debe modificar la matriz de entrada en su lugar y usar O (1) espacio adicional para resolver este problema.

Puede suponer que todos los caracteres de la matriz son caracteres imprimibles en la tabla de códigos ASCII.

 

Método de doble puntero

Análisis de complejidad.

Complejidad del tiempo: O (N). Se realizaron intercambios N / 2N / 2.
Complejidad del espacio: O (1), solo se utiliza el espacio de nivel constante.

#include "stdafx.h"
#include<vector>
using namespace std;
class Solution {
public:
	void reverseString(vector<char>& s) 
	{
		//双指针法
		int i = 0;
		int j = s.size() - 1;
		while (i<j)//首尾交换,直到i>=j
		{
			char temp = s[i];
			s[i] = s[j];
			s[j] = temp;
			i++;
			j--;
		}
	}
};


int main()
{
	Solution str;
	vector<char> s;
	s.push_back('h'); s.push_back('e'); s.push_back('l'); s.push_back('l'); s.push_back('o');
	vector<char> s1;
	s1.push_back('H'); s1.push_back('a'); s1.push_back('n'); s1.push_back('n'); s1.push_back('a'); s1.push_back('h');
	str.reverseString(s);
	str.reverseString(s1);
    return 0;

El método de doble puntero utiliza dos punteros, un puntero izquierdo a la izquierda y un puntero derecho a la derecha. Al comenzar a trabajar, la izquierda apunta al primer elemento y la derecha apunta al elemento de cola. Cambie los elementos señalados por los dos punteros y muévase hacia el centro hasta que los dos punteros se encuentren.

Algoritmo

Apunte a la izquierda al primer elemento y a la derecha al elemento final.
Cuando izquierda <derecha:
intercambie s [izquierda] ys [derecha].
izquierda ++
derecha ++

Inserte la descripción de la imagen aquí

 

Publicado 23 artículos originales · elogiado 0 · visitas 137

Supongo que te gusta

Origin blog.csdn.net/qq_35683407/article/details/105420081
Recomendado
Clasificación