Easy
154607FavoriteShare
Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.
Please note that the string does not contain any non-printable characters.
Example:
Input: "Hello, my name is John"
Output: 5
就地统计法1:
C++:
/*
* @Autor: SourDumplings
* @Date: 2019-09-25 11:37:19
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/number-of-segments-in-a-string/
*/
class Solution
{
public:
int countSegments(string s)
{
int res = 0;
bool firstWord = false;
for (auto &&c : s)
{
if (c == ' ')
{
if (firstWord)
{
++res;
firstWord = false;
}
}
else
{
firstWord = true;
}
}
if (firstWord && s[s.length() - 1] != ' ')
{
++res;
}
return res;
}
};
就地统计法2:
Java:
/*
* @Autor: SourDumplings
* @Date: 2019-09-25 11:46:56
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/number-of-segments-in-a-string/
*/
class Solution
{
public int countSegments(String s)
{
int res = 0;
boolean firstC = true;
int l = s.length();
for (int i = 0; i < l; i++)
{
if (s.charAt(i) != ' ')
{
if (firstC)
{
++res;
firstC = false;
}
}
else
{
firstC = true;
}
}
return res;
}
}
利用split法:
Java:
/*
* @Autor: SourDumplings
* @Date: 2019-09-25 11:49:43
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/number-of-segments-in-a-string/
*/
/*
* @Autor: SourDumplings
* @Date: 2019-09-25 11:46:56
* @Link: https://github.com/SourDumplings/
* @Email: changzheng300@foxmail.com
* @Description: https://leetcode.com/problems/number-of-segments-in-a-string/
*/
class Solution
{
public int countSegments(String s)
{
s = s.trim();
if (s.length() == 0)
{
return 0;
}
String[] res = s.split("\\s+");
return res.length;
}
}