Quiero empezar un algoritmo de cepillo. Desliza suavemente en cuestión.
Directorio artículo
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:
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
};