58. Length of Last Word
leetcode easy
Task
Дана строка s, состоящая из слов и пробелов. Верните длину последнего слова в строке.
Слово — это максимальная подстрока, состоящая только из символов, не являющихся пробелами.
Пример
Input: s = "Hello World"
Output: 5
Explanation: The last word is "World" with length 5.
C# solution
matched/originalclass Solution {
public:
int lengthOfLastWord(string s) {
int p = s.length() - 1;
while (p >= 0 && s[p] == ' ') {
p--;
}
int length = 0;
while (p >= 0 && s[p] != ' ') {
p--;
length++;
}
return length;
}
};C++ solution
auto-draft, review before submit#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
int lengthOfLastWord(string s) {
int p = s.length() - 1;
while (p >= 0 && s[p] == ' ') {
p--;
}
int length = 0;
while (p >= 0 && s[p] != ' ') {
p--;
length++;
}
return length;
}
};Java solution
matched/originalclass Solution {
public int lengthOfLastWord(String s) {
int p = s.length() - 1;
while (p >= 0 && s.charAt(p) == ' ') {
p--;
}
int length = 0;
while (p >= 0 && s.charAt(p) != ' ') {
p--;
length++;
}
return length;
}
}JavaScript solution
matched/originalvar lengthOfLastWord = function (s) {
let p = s.length - 1;
while (p >= 0 && s[p] === " ") {
p--;
}
let length = 0;
while (p >= 0 && s[p] !== " ") {
p--;
length++;
}
return length;
};Python solution
matched/originalclass Solution:
def lengthOfLastWord(self, s: str) -> int:
p = len(s) - 1
while p >= 0 and s[p] == " ":
p -= 1
length = 0
while p >= 0 and s[p] != " ":
p -= 1
length += 1
return lengthGo solution
matched/originalfunc lengthOfLastWord(s string) int {
p := len(s) - 1
for p >= 0 && s[p] == ' ' {
p--
}
length := 0
for p >= 0 && s[p] != ' ' {
p--
length++
}
return length
}Explanation
Algorithm
1️⃣
Поиск последнего слова:
Сначала мы пытаемся найти последнее слово, начиная с конца строки. Итерируем строку в обратном порядке, пропуская пробелы. Когда мы встречаем первый непробельный символ, мы знаем, что нашли последний символ последнего слова.
2️⃣
Определение длины последнего слова:
После того как последнее слово найдено, мы подсчитываем его длину, начиная с его последнего символа. Здесь также можно использовать цикл.
3️⃣
Итог:
Используя обратную итерацию и пропуск пробелов, определяется начало и конец последнего слова в строке для вычисления его длины.
😎