434. Number of Segments in a String
leetcode easy
#csharp#easy#leetcode#string
Task
Дана строка s, верните количество сегментов в строке.
Сегмент определяется как непрерывная последовательность символов, отличных от пробелов.
Пример:
Input: s = "Hello, my name is John"
Output: 5
Explanation: The five segments are ["Hello,", "my", "name", "is", "John"]
C# solution
matched/originalpublic class Solution {
public int CountSegments(string s) {
int segmentCount = 0;
for (int i = 0; i < s.Length; i++) {
if ((i == 0 || s[i - 1] == ' ') && s[i] != ' ') {
segmentCount++;
}
}
return segmentCount;
}
}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:
public int CountSegments(string s) {
int segmentCount = 0;
for (int i = 0; i < s.size(); i++) {
if ((i == 0 || s[i - 1] == ' ') && s[i] != ' ') {
segmentCount++;
}
}
return segmentCount;
}
}Java solution
matched/originalpublic class Solution {
public int countSegments(String s) {
int segmentCount = 0;
for (int i = 0; i < s.length(); i++) {
if ((i == 0 || s.charAt(i-1) == ' ') && s.charAt(i) != ' ') {
segmentCount++;
}
}
return segmentCount;
}
}JavaScript solution
matched/originalvar countSegments = function(s) {
let segmentCount = 0;
for (let i = 0; i < s.length; i++) {
if ((i === 0 || s[i - 1] === ' ') && s[i] !== ' ') {
segmentCount++;
}
}
return segmentCount;
};Python solution
matched/originalclass Solution:
def countSegments(self, s: str) -> int:
segment_count = 0
for i in range(len(s)):
if (i == 0 or s[i-1] == ' ') and s[i] != ' ':
segment_count += 1
return segment_countGo solution
matched/originalfunc countSegments(s string) int {
segmentCount := 0
for i := 0; i < len(s); i++ {
if (i == 0 || s[i-1] == ' ') && s[i] != ' ' {
segmentCount++
}
}
return segmentCount
}Explanation
Algorithm
Инициализируйте счетчик сегментов segment_count равным 0.
Итеративно пройдитесь по строке s. Для каждого индекса i проверьте, начинается ли на этом индексе сегмент: Если символ s[i] не является пробелом, и (либо это первый символ строки, либо предыдущий символ s[i-1] является пробелом), увеличьте segment_count.
Верните segment_count.
😎