LeetCode 1-10 (JavaScript)

Quiero empezar un algoritmo de cepillo. Desliza suavemente en cuestión.


6. Z-en forma de transformar

Dificultad: 中等
para mí: 困难
en esta pregunta me hizo muy consciente de lo que era estúpida. string Obviamente luchar es muy simple, yo estaba aturdido golpe la pared de ladrillo no mira hacia atrás, dirigido a la matriz bidimensional de difícil ir.

El número de una cadena dada de acuerdo a la fila dada, a abajo, de izquierda a derecha desde la disposición en forma de Z.
Ejemplo, la cadena de entrada es el número de filas "LEETCODEISHIRING" es 3, dispuesto como sigue:

después de que necesita a la salida de línea por línea leer de izquierda a derecha, la generación de una nueva cadena, tales como: "LCIRETOESIIGEDHN".
Se dará cuenta de esta conversión de cadenas función especificada número de líneas:
string convert(string s, int numRows);

Ejemplo 1:

Entrada: s = "", LEETCODEISHIRING númeroFilas = 3
Salida:LCIRETOESIIGEDHN

Ejemplo 2:

Entrada: s = "LEETCODEISHIRING", numRows = 4
Salida: LDREOEIIECIHNTSG
Explicación:
Aquí Insertar imagen Descripción
Entrada: s = "LEETCODEISHIRING", numRows = 4
Salida:LDREOEIIECIHNTSG

Ejemplo 3:

Entrada: s = "Apalindromeisaword, frase. , NúmeroFilas = 2, número, orothersequenceofunitsthatcanbereadthesamewayineitherdirection, withgeneralallowancesforadjustmentstopunctuationandworddividers"
Salida:Aore,sohraerwraancaiprmods,roreeftaeesmniie,ieawnrdetntnndv.adew,anereqcustbaeeitdcntnlocojmsuuoddislniaprubohunntcndhwyhrtohealefuttpaiwrdrishmteiataeiglssotoe

Ejemplo 4:

Entrada: s = "A", numRows = 1
Salida:A

var convert = function(s, numRows) {
	let a = []
	let index = 0
	let down = true //index 是否下移
	if (numRows === 1) {
		return s
	}
	for (let i = 0; i < s.length; i++) {
		// a[index]是否为undefined
		a[index] = a[index] ? a[index] + s[i] : s[i]
		index = down ? ++index : --index
		if (index === 0) {
			down = true
		} else if (index === numRows - 1) {
			down = false
		}
	}
	return a.join('')
}

reversión 7. número entero

Dificultad: 简单
para mí:简单

Da un entero de 32 bits, lo que necesita este número entero en cada invertida.

Ejemplo 1:

Entrada: 123
Salida: 321

Ejemplo 2:

Entrada: -123
de salida: -321

Ejemplo 3:

Entrada: 120
de salida: 21

Nota:
Supongamos que tenemos un entorno puede almacenar el entero de 32 bits, su valor está en el rango [-2 31 es 2 31 es - 1] Por favor De acuerdo con esta hipótesis, si desbordamiento de entero después de revertir devuelve 0.

var reverse = function(x) {
    let str
	if (x < 0) {
	    str = (-x).toString()
	} else {
		str = x.toString()
	}
	str = str.split('').reverse().join('')
	if(str.length>10 || str.length === 10 && str > (x<0?"2147483648":"2147483647")){
		return 0 
	}
			
	if(x<0){
		x = -str
	}else{
		x = +str
	}
	return x
};
Publicados 131 artículos originales · ganado elogios 451 · vistas 540 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_36667170/article/details/105280403
Recomendado
Clasificación