Llega oferta, cava amigos a recoger! Estoy participando en la serie de actividades de reclutamiento de primavera de 2022: pase preguntas y tarjetas perforadas Haga clic para ver los detalles de las actividades .
tema
Se le proporciona una cadena s que consta de varias palabras separadas por algunos caracteres de espacio antes y después de ellas. Devuelve la longitud de la última palabra de la cadena.
Una palabra es la subcadena más grande que consta de solo letras y no contiene caracteres de espacio.
Fuente: LeetCode Enlace: leetcode-cn.com/problems/le…Los derechos de autor pertenecen a LeetCode.com. Para reimpresiones comerciales, comuníquese con la autorización oficial y para reimpresiones no comerciales, indique la fuente.
示例 1:
输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。
示例 2:
输入:s = " fly me to the moon "
输出:4
解释:最后一个单词是“moon”,长度为4。
示例 3:
输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为6的“joyboy”。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
análisis de pensamiento
Idea 1
- Primero elimine los espacios antes y después de los caracteres trim ()
- Luego comience a cortar con espacios para los caracteres en el medio.
- Obtenga la matriz cortada y obtenga la longitud
- Tome la longitud menos 1, tome la última cadena de la matriz
- Cortar la cuerda para obtener la longitud.
Idea 2
- Primero elimine el espacio antes y después del carácter trim(), de hecho, no es necesario eliminar el espacio al frente, lo reemplazamos con trimEnd()
Idea 3
recorrido inverso
- Primero, elimine los espacios antes y después de los caracteres.
- Debido a que obtenemos el valor a través del subíndice, es la longitud del carácter -1
- Después de obtener la longitud, comience a eliminar la longitud del espacio antes y después del carácter,
- Ahora empieza a comparar desde el final, un contador,
- Comience el bucle desde atrás, si el valor actual es mayor que 0 y el valor actual no es igual a vacío, el contador se superpone y el valor se devuelve cuando no se cumple la condición
código
código 1
let lengthOfLastWord = function(s) {
/**
* 首先去除字符的前后空格 trim()
* 然后对中间的字符开始以空格切割
* 拿到切割数组,并获取长度
* 拿长度减1,拿数组的最后一个字符串
* 把字符串切割,获取长度
*
* */
let arr = s.trim().split(' ')
let lastIndex = arr.length - 1
return arr[lastIndex].split('').length
}
复制代码
codigo 2
let arr = s.trimEnd().split(' ')
复制代码
codigo 3
/**
* 首先还是去除字符的前后空格
* 因为我们是通过下标拿值的,所以就是字符长度-1
* 拿到长度后,开始去除字符前后的空格长度,
* 现在开始从最后开始比较,一个计数器,
* 开始从后边循环,如果当前值大于0,且当前值不等于空,计数器叠加,不满足条件时返回值
* */
let index = s.length - 1
console.log(index)
while (s[index] === ' ') {
console.log(index)
index--
}
let wordLength = 0
while (index >= 0 && s[index] !== ' ') {
wordLength++
index--
}
return wordLength
复制代码