leetcode 58. La longitud última palabra (Python)

Aquí Insertar imagen Descripción
Solución:
Este problema se resuelve con un recorrido inverso:

Esperar a ver este problema en ambos casos;

  1. La última es la palabra
  2. El último es un espacio
    para el primer caso, un cálculo directo de la última palabra de longitud, a continuación, volver a;
    pero esto también se divide en dos casos más pequeños,
    1. Por último hay una palabra delante de la palabra, se determina si o no la última palabra en una condición para terminar el puntero del elemento actual es un espacio;
    2. La última palabra no está en frente de la palabra, de modo que el extremo de la posición actual del puntero de -1;

Para el segundo caso, la necesidad de filtrar el espacio, y luego calcula, pero si la cadena sólo espacios, todos los espacios separaron por filtración, la posición actual del puntero de -1, 0 pueden ser devueltos directamente.

Código es el siguiente:

class Solution:
	def lengthOfLastWord(self, s):
		
		right = len(s) - 1

		while right >= 0:
		
			if s[right] != ' ':

				if right  == 0:
					return 1

				count = 0

				while s[right] != ' ' and right >= 0:

					right -= 1
					count += 1					

				return count
			else:
				while s[right] == ' ' and right >= 0:
					right -= 1
				if right == -1:

					return 0
		return 0

Resultados de pantalla:
Aquí Insertar imagen Descripción
El
SI derecha == 0:
. Retorno 1
se resumen en el primer bucle for

class Solution:
	def lengthOfLastWord(self, s):
		
		# if len(s) == 1 and s[0] != ' ':

		# 	return 1
		# elif len(s) == 1 and s[0] == ' ':
		# 	return 0

		right = len(s) - 1

		while right >= 0:


		
			if s[right] != ' ':

				
				count = 0

				while s[right] != ' ' and right >= 0:

					right -= 1
					count += 1


				return count
			else:

				while s[right] == ' ' and right >= 0:
					right -= 1
				if right == -1:

					return 0
		return 0

Aquí Insertar imagen Descripción
Calculando primero el filtrado de espacio, y luego la palabra

class Solution:
	def lengthOfLastWord(self, s):

		end = len(s) - 1
		while (end >= 0 and s[end] == ' '):
			end -= 1
		if end == -1:
			return 0
		start = end
		while start >= 0 and s[start] != ' ':
			start -= 1
		return end - start

Aquí Insertar imagen Descripción

Publicados 100 artículos originales · ganado elogios 3 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/cy_believ/article/details/104869911
Recomendado
Clasificación